2018. 4. 12. 14:35, 알고리즘/BOJ
https://www.acmicpc.net/problem/2253
D[i][j]를 직전에 j칸 점프해서 i번째 돌에 도달하기 위한 최소 횟수라고 할 때, D[i][j]는 min(D[i-j][j-1], D[i-j][j], D[i-j][j+1], D[i-j+1][j-2], D[i-j+1][j-1], D[i-j+1][j], D[i-j-1][j+2], D[i-j-1][j+1], D[i-j+1][j])+1로 구할 수 있습니다. i는 최대 N이고 j는 j*(j+1)/2 <= N인 최대의 j이므로 대략 sqrt(N) 정도이기에 O(N*sqrt(N))에 구할 수 있습니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 11003번: 최소값 찾기 (0) | 2018.04.18 |
---|---|
[BOJ] 14931번: 물수제비 (SUJEBI) (0) | 2018.04.17 |
[BOJ] 14930번: 구슬 (BEAD) (0) | 2018.04.17 |
[BOJ] 5639번: Binary Search Tree (0) | 2018.04.10 |
[BOJ] 2957번: BST (0) | 2018.04.10 |
[BOJ] 2467번: 용액 (0) | 2018.04.09 |
Comments