2018. 5. 17. 15:29, 알고리즘/BOJ
https://www.acmicpc.net/problem/5904
D[i]를 S(i)의 길이라고 할 때, D[i] = 2*D[i-1]+i+3입니다. 대략 2배씩 증가하기 때문에 D{40]정도만 구해도 10^9까지 충분히 커버를 합니다.
그리고 입력받은 N에 대해 우선 D[i] < N <= D[i+1]을 만족하는 i를 찾고,
S(i) = S(i-1) | mooo...oo | S(i-1)에 대해 N이 moo...o 구간에 속하는지, S(i-1) 구간에 속하는지를 판단하여 recursive하게 해결할 수 있습니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 14956번: Philosopher's Walk (5) | 2018.05.17 |
---|---|
[BOJ] 14585번: 사수빈탕 (0) | 2018.05.17 |
[BOJ] 13701번: 중복 제거 (0) | 2018.05.17 |
[BOJ] 11391번: 분배 (0) | 2018.05.14 |
[BOJ] 2287번: Monodigital Representations (0) | 2018.05.12 |
[BOJ] 13303번: 장애물 (4) | 2018.05.12 |
Comments