댄코 - 댄싱코딩

[2193] 이친수 본문

코딩/알고리즘

[2193] 이친수

Jk hila 2017. 7. 5. 01:08

처음에 이진수 오타인줄 알았다. dp에 좀 더 익숙해 지기위해서 dp로 풀어보았다.

한번 틀렸던게 N으로 90이 들어오면 int범위를 넘어간다. dp문제를 풀때는 자료형도 주의해야겠다.

d[i][0]에는 i 번째 자릿수인 이친수의 끝자리가 0인 이친수,

d[i][1]에는 i 번째 자릿수인 이친수의 끝자리가 1인 이친수

를 저장했다.


i번째 자릿수인 이친수의 끝자리가 1이려면 i-1자릿수인 이친수의 끝자리가 0이어야 한다.

∴ d[i][1] = d[i-1][0]

i번째 자릿수인 이친수의 끝자리가 0이려면 i-1자릿수인 이친수의 끝자리는 0또는 1이어야 한다.

∴ d[i][0] = d[i-1][0] + d[i-1][1]


이 식을 1부터 N까지 돌리고

d[N][0]과 d[N][1]을 더하면 N번째 자릿수인 이친수의 갯수가 나온다.







'코딩 > 알고리즘' 카테고리의 다른 글

[9095] 1,2,3 더하기  (0) 2017.07.05
[2577] 숫자의 갯수  (0) 2017.07.05
[2747] 피보나치 수  (0) 2017.07.05
[1021] 회전하는 큐  (0) 2017.07.04
[1094] 막대기  (0) 2017.07.04
Comments