1) N: 1~60 —> 직접 결과값 계산
2) N: 61~ —> dynamic programming
61 이상인 N은 60 이하인 k에 대하여 N= k + (N-k) 로 분할되므로
우변을 이용하여 60보다 큰 수인 N의 함수값(좌변)도 계산 가능 (60가지 경로 중 최적의 값)
3) N: 248 이후로는 모두 (N+60) 과 다트 1발 차이 —> dp[307] 까지만 구해도 됨
—> 넉넉히 dp: 310까지만 구해서 이걸로 모든 값 도출 가능
—> target이 310을 넘으면 60씩 Q번 차감하여 250 <= target' <= 310 범위로 집어 넣고
(※ while 거듭뺄셈 말고, 250 차감후 60으로 나눈 몫과 나머지를 이용해야 --> O(1))
—> solution( target' ) 에서 다트 횟수만 Q를 더한다