끄적끄적 코딩
article thumbnail
Published 2019. 9. 18. 10:41
[C++] 백준 9655번 돌 게임 알고리즘

DP로 문제를 풀어보았습니다.

상근이를 기준으로 하였으며 (1 = 승리, 0 = 패배)
DP[i -1], DP[i - 3]이 1이면 지는 경우고
0이면 이기는 경우라고 판단하였습니다.

 

#include <iostream>
#include <algorithm>
using namespace std;

int main(int argc, char* argv[])
{
	int n;
	int DP[1010];

	cin >> n;

	DP[0] = 0;
	DP[1] = 1;
	DP[2] = 0;
	DP[3] = 1;
	
	for (int i = 4; i <= n; ++i) {
		if (min(DP[i - 1], DP[i - 3]) == 1) {
			DP[i] = 0;
		}
		else {
			DP[i] = 1;
		}
	}
	
	if (DP[n] == 1) {
		cout << "SK" << endl;
	}
	else {
		cout << "CY" << endl;
	}
	return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 9657번 돌 게임 3  (0) 2019.09.18
[C++] 백준 9656번 돌 게임 2  (0) 2019.09.18
[C++] 백준 15913번 가위 바위 보 999  (0) 2019.09.18
[C++] 백준 10810번 공 넣기  (0) 2019.09.18
[C++] 백준 1914번 하노이 탑  (0) 2019.09.18

검색 태그