[프로그래머스] n + 1 카드게임 힌트

riassuc·2024년 1월 21일

문제에 나오는 예시의 5번째 값인 1번 카드를 생각해 볼 때
이 1번 카드를 코인을 사용해서 구매 해도 될 지 알아보려면
합이 13이 되는 12번 카드를 살 수 있을지 알아야 하고
그러면 과연 주어진 코인으로 12번 카드가 나올 라운드 까지 갈 수 있는지 알아봐야 한다.

그렇게 알아보려면 카드를 뽑을 때 마다 뒤의 요소들을 계속 확인해야 하고
확인해야 할 부분도 많아 분기도 너무 많아진다.
또 이 때 코드를 잘못 작성하면 12번 카드가 나오기 전 5번, 8번 카드를 구매해버려서
결국은 12번 카드가 나왔을 때 구매 할 수 없다.

#hint

그래서 이 문제는 지연 연산(lazy evaluation)과 비슷하게
매 라운드 마다 구매를 결정하지 않고 구매 할 수 있는 카드들을 남겨 둔 채로
진행 할 수 있는 라운드까지 진행 한 후 더 이상 진행 할 수 없을 때 마다
구매 가능 한 카드 중 가장 비용이 적은 카드를 구매 하는 방법으로 진행 하면 풀 수 있다.

[프로그래머스] n + 1 카드게임 풀이

profile
riassuc

0개의 댓글