카운트 다운

    [JS] 카운트 다운

    문제 자체는 dp를 활용해서 해결할만한 문제였다. 우선 다트는 1~20까지 점수가 있는 판이란 점을 생각하자. dp를 만드는데 [Infinity,0]으로 각 칸을 dp[n] 이라면 dp[n][0]은 n이라는 점수를 만들기 위해 필요한 다트의 횟수, dp[n][1]은 싱글이나 불을 던진 횟수를 저장하면 될 것이라고 생각했다. 이런방식으로 dp를 구성하면 n이라는 점수를 만들기 위해서 이전 dp에서 2개만 합하면 된다! 또한 n이 점수이므로 dp[n]을 만들기 위해 dp[i]를 사용했다면 자연스럽게 더해줄 점수는 dp[n-i]가 된다. 이렇게 dp들을 검사하며 1. 다트를 던지는 횟수가 적은경우 2. 다트를 던지는 횟수가 같다면 싱글이나 불 다트를 던진 횟수가 많은경우 위 두 조건중 하나에 충족하면 dp를 ..