PS/BaekJoon

[BaekJoon 9655번] 돌 게임(C++)

박땅콩 2022. 9. 9.
728x90

※주의※

저의 풀이가 정답은 아닙니다.

다른 코드가 더 효율적이거나 좋을 수 있습니다.

언제나 다른 사람의 코드는 참고만 하시기 바랍니다.

 

 

[문제 풀이 사이트]

 

 

 

9655번: 돌 게임

상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.

www.acmicpc.net

 

 

[문제 설명]

 

 

돌 게임은 두 명이서 즐기는 재밌는 게임이다.

탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다.

두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.

 

 

[입력]

 

 

첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)

 

 

[출력]

 

 

상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.

 

 

[입출력 예]

 

 

입력 출력
5 SK

 

 

[문제 풀이]

 

 

다시 초심을 찾고, 문제 풀이를 시작했다.

돌 게임은 문제 분류가 DP로 분류되어있지만, DP로 풀지 않아도 문제를 풀 수 있었다.

 

아래와 같이 탁자 위의 돌 개수에 따른 이긴 사람을 구해볼 수 있었는데

탁자 위의 돌 개수(N) 이긴 사람
1 상근
2 창영
3 상근
4 창영
5 상근
6 창영
7 상근

 

짝수인 경우 창영이가 게임에서 이기고, 홀수인 경우 상근이가 게임에서 이기는 것을 알 수 있었다.

 

[최종 코드]

 

 

[GitHub]

 

 

 

GitHub - SmallPeanutPark/BAEKJOON: Study BaekJoon for Coding Test

Study BaekJoon for Coding Test. Contribute to SmallPeanutPark/BAEKJOON development by creating an account on GitHub.

github.com

 

 

#include <bits/stdc++.h>
using namespace std;

int main(void) {
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    int N; cin >> N;
    if(N % 2 == 0) cout << "CY";
    else cout << "SK";
    return 0;
}
728x90

댓글