본문 바로가기

프로그래밍 공부131

DP_퇴사 풀이 암기 점화식 : dp[i] = max(p[i] + dp[time], max_value) n = int(input()) # 전체 상담 개수 t = [] # 각 상담을 완료하는데 걸리는 기간 p = [] # 각 상담을 완료했을 때 받을 수 있는 금액 dp = [0] * (n + 1) # 다이나믹 프로그래밍을 위한 1차원 DP 테이블 초기화 max_value = 0 for _ in range(n): x, y = map(int, input().split()) t.append(x) p.append(y) # 리스트를 뒤에서부터 거꾸로 확인 for i in range(n - 1, -1, -1): time = t[i] + i # 상담이 기간 안에 끝나는 경우 if time 2022. 10. 1.
코딩테스트(10.01) 1. 정렬 + 그리디 (난이도 중하) 3. 구현(탐색, BFS/DFS) (난이도 중) 4. DP? 최단경로? (난이도 중상)(끝에 집중 떨어짐) 2. DP(점화식 도출 가능) (난이도 상) 풀이 가능 : 1, 3, 4번 / 보류: 2번 (목표: 3솔) -> 2문제는 풀만했는데, 2번과 4번 문제는 어려웠다. 특히 2번의 신용등급 관련 문제의 경우 조건이 매우 많아서, 코드가 길어질 수밖에 없는 구조인데, 이런 문제는 어떻게 대비해야할지 고민이 되는 부분이다 2022. 10. 1.
코딩테스트 시험 전 마인드 꾸준히 코딩테스트를 준비하면서 이젠 공부방향을 막판 시험 전 스타일로 바꿔야함을 느끼고 있다. 자격증 준비와 마찬가지로 미친듯이 돌리며 어느정도의 암기가 필요하다. 문제를 딱 보면 한 번에 코드를 짤 정도로 연습해야한다. 처음에는 풀이를 계속 봤지만, 계속 연습해서 문제를 보면 바로 코드를 짤 수 있을 정도로 연습해나가야한다. (이코테 풀이를 암기할 정도로 무한 연습이 체화의 시작이 아닐까) 분명 외우는 느낌이 나는데, 이렇게 해도 되는걸까 싶을 때가 있는데 그래도 외우다보면 나도 모르게 이해되는 게 있고 숙달되는 게 있다. 170개가 넘는 코딩테스트 포스팅 중에서 선택과 집중을 해야할 시기이다. 중요한 문제들을 반복 또 반복하며 머릿속에 체화해 극단으로 코딩 감각을 끌어내야한다. 이는 연습을 통해 충분.. 2022. 9. 30.
BFS/DFS_연구소 풀이 암기 * 완전탐색 -> BFS/DFS 활용 (반복문, 재귀함수) [모든 경우의 수 다 계산해야 하므로] 모든 조합을 계산할 때 : 1) 파이썬 조합 라이브러리 활용 (from itertools import combinations) 2) BFS/DFS 이용 (* DFS -> 벽을 세웠을 경우, 끝까지 탐색하여 전체 총량을 확인해야하므로 (깊이 우선 탐색) ) 힌트: 1) DFS 이용해 울타리 설치하면서, 매번 안전영역의 크기 계산 (1) 울타리가 3개 설치된 경우 (2) 각 바이러스의 위치에서 전파 진행(virus) (3) 안전영역의 최댓값 계산 (4) 빈 공간에 울타리 설치 **암기 "dfs(count)의 의미는 무엇인가?" 어려운 포인트) dfs(count)는 모든 영역을 다 점검하여, 어디에 울타리를 설치.. 2022. 9. 29.