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

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

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

 

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

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

	cin >> n;

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

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

[C++] 백준 9660번 돌 게임 6  (0) 2019.09.18
[C++] 백준 9659번 돌 게임 5  (0) 2019.09.18
[C++] 백준 9657번 돌 게임 3  (0) 2019.09.18
[C++] 백준 9656번 돌 게임 2  (0) 2019.09.18
[C++] 백준 9655번 돌 게임  (0) 2019.09.18

검색 태그