※주의※
저의 풀이가 정답은 아닙니다.
다른 코드가 더 효율적이거나 좋을 수 있습니다.
언제나 다른 사람의 코드는 참고만 하시기 바랍니다.
[문제 풀이 사이트]
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;
}
'PS > BaekJoon' 카테고리의 다른 글
[BaekJoon 2003번] 수들의 합 2(C++) (2) | 2022.09.26 |
---|---|
[BaekJoon 2230번] 수 고르기(C++) (2) | 2022.09.22 |
[BaekJoon 2839번] 설탕 배달(C++) (0) | 2022.09.06 |
[BaekJoon 1197번] 최소 스패닝 트리(C++) (0) | 2022.09.05 |
[BaekJoon 1920번] 수 찾기(C++) (0) | 2022.08.31 |
댓글