2018. 1. 7. 14:05, 알고리즘/BOJ
https://www.acmicpc.net/problem/9658
돌이 i개 있을 때 선수가 이기면 $D[i]=1$, 그렇지 않다면 $D[i]=0$ 이라고 합시다. 이 때
$D[0] = 1, D[1] = 0, D[2] = 1, D[3] = 0$ 임은 자명합니다. 이후의 값에 대해서는,
$D[i]$를 구하기 위해서 $D[i-1], D[i-3], D[i-4]$를 생각해야 합니다. 만약 이 셋중 어느 하나라도 값이 0이라면 돌이 $i$개일 때 선수가 이길 수 있습니다. 예를 들어 $D[i-1] = 0$인 경우, 선수가 $i$개의 돌 중 1개를 가져가면 후수는 돌이 $i-1$개인 게임의 선수와 같은 입장이고 이 때 후수는 패배하기 때문입니다. 이 성질을 바탕으로 Dynamic Programming을 하면 됩니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 2169번: 로봇 조종하기 (0) | 2018.01.07 |
---|---|
[BOJ] 5582번: 공통 부분 문자열 (0) | 2018.01.07 |
[BOJ] 2665번: 미로만들기 (0) | 2018.01.07 |
[BOJ] 3055번: 탈출 (0) | 2018.01.07 |
[BOJ] 9009번: 피보나치 (0) | 2018.01.07 |
[BOJ] 10163번: 색종이 (0) | 2018.01.07 |
Comments