레벨2 2

[Programmers/Python] 완전범죄

1. 문제 파악하기모든 물건을 훔쳐야 한다.각 물건은 훔칠 때마다 a/b 두 도둑 중 하나가 흔적을 남긴다.a의 흔적 합이 n 이상이면 a가, b의 흔적이 m이상이면 b가 잡힌다.목표는 "둘 다 잡히지 않으면서" a의 흔적 합을 최소화하는 것각 물건마다 선택(a가 훔칠까, b가 훔칠까)을 해야하고,전체 선택 결과에 대해 두 변수(=a의 흔적, b의 흔적)가 제약(그 중 a의 흔적을 최소화 해야한다=> 전형적인 DP(동적 계획법) 문제 형태2. DP 상태(메모이제이션) 설계dp[k] = 지금까지 b 의 흔적 합이 정확히 k 일 때, a의 흔적 합의 최소값배열 길이는 m (b가 잡히지 않으려면 k 초기값INF = 10**9dp = [INF]*mdp[0] = 0 # b가 0 흔적일 때 a도 0 이제 물건을 하..

[Programmers/Python] [PCCP 기출문제] 2번 / 퍼즐 게임 챌린지

0. 사용언어 : Python1. 문제 2. 문제 분석2-1. 문제각 퍼즐에는 난이도(diff)와 소요 시간(time)이 있으며, 숙련도(level)에 따라 퍼즐을 푸는 데 걸리는 시간이 달라진다.규칙 설명:- 현재 퍼즐의 난이도가 숙련도 이하일 경우(diff - 현재 퍼즐의 난이도가 숙련도보다 높을 경우(diff > level), 퍼즐을 여러 번 틀리게 된다- 이때 틀리는 횟수는 diff - level 이다.- 퍼즐을 틀릴 때마다, 퍼즐의 소요 시간(time_cur)과 이전 퍼즐의 소요 시간(time_prev)이 더해진 시간을 추가로 사용한다.- 마지막으로 틀리지 않고 퍼즐을 풀 때는 소요 시간(time_cur)만 더한다. 2-2. 제한사항퍼즐의 개수(n):최대 300,000개의 퍼즐이 주어질 수 있다..