bether   3년 전

어느정도 보고 해결하는데, 이 문제는 애를 먹네요....ㅠ

입력을 보면 data type문제는 아닌 것 같고, 단순 로직문제 인 것 같은데 어느 부분을 놓치고 있는지 모르겠습니다. 

dp[n]에는 숫자 n을 그 합으로써 표현할 수 있는 최소 개수가 들어가 있습니다. 

예를 들어 12 = 9+3으로 표현할 수 있기 때문에, dp[12] = dp[9] + dp[3]이 들어갑니다. 여기서 dp[1] ~ dp[3]까지의 값은 초기화 해 놓았습니다.



wpqldmlrna   3년 전

check 함수 자체에 로직 오류가 있어보입니다.

해당 문제 조건에서 8은 4 + 4 ( 2의 제곱승 2개 ) 로 값 2를 가져야하지만,

함수 내에서 2 * 2 * 2 = 8 이 성립하므로 참을 반환하여 dp[8] 에는 값 1이 저장됩니다.

또한 지역 변수의 경우 할당가능한 배열의 크기가 상당히 작습니다.

10만이라는 값은 상당히 큰 값이므로 전역변수로 선언하는 것을 추천드립니다.

bether   3년 전

감사합니다...찾아보니깐 기본적인 로직자체에 문제가 있었네요..

댓글을 작성하려면 로그인해야 합니다.