문제 링크입니다: https://school.programmers.co.kr/learn/courses/30/lessons/118668
DP 문제였습니다.
알고리즘은 아래와 같습니다.
1. 알고력과 코딩력을 기준으로 cache 배열을 선언한 뒤 -1로 초기화합니다.
2. 주어진 문제들 중 요구하는 최대 알고력과 최대 코딩력을 구합니다.
3. 문제에서 요구하는 값은 주어진 알고력과 코딩력을 시작으로 모든 문제를 풀 수 있는 알고력과 코딩력을 얻을 때까지의 최단 시간입니다. (cache[alp][cop])
3.1 따라서, 문제에서 주어진 시나리오대로 모든 경우의 수를 구해줍니다.
a. 1의 시간을 들여 알고력을 1 얻기
b. 1의 시간을 들여 코딩력을 1 얻기
c. 풀 수 있는 문제들 중 하나를 풀어 보상으로 알고력과 코딩력을 얻기
4. 3번 과정을 거쳐 얻은 최단 시간을 반환합니다.
개발환경: Programmers IDE
지적, 조언, 질문 환영합니다! 질문 남겨주세요~
반응형
'알고리즘 > programmers' 카테고리의 다른 글
[Programmers] 숫자 짝궁 (0) | 2022.10.10 |
---|---|
[Programmers] 파괴되지 않은 건물 (1) | 2022.09.27 |
[Programmers] 두 큐 합 같게 만들기 (0) | 2022.08.24 |
[Programmers] 성격 유형 검사하기 (0) | 2022.08.22 |
[Programmers] 블록 이동하기 (0) | 2022.08.15 |