코딩테스트
99클럽 코테 스터디 26일차 TIL : 백준 9655번, 게임이론
fecu
2024. 11. 22. 23:24
728x90
1. 오늘의 문제
오늘 문제는 별로 어렵지 않은 문제였다.
그런데...
문제에서 돌을 1개, 또는 3개를 가져갈 수 있다는 내용을 1~3개를 가져갈 수 있다는 것으로 착각했다.
나는 난독인건가...
그래서 한참을 헤메였다.
더보기
문제
돌 게임은 두 명이서 즐기는 재밌는 게임이다.
탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 이기게 된다.
두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.
입력
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)
2. 원리
돌의 숫자를 1, 2, 3, 4...로 늘려나가면서 규칙을 찾아본다.
- 돌이 1개일 때 : 상근1개 -> 상근이 승 / 'SK' 출력
- 돌이 2개일 때 : 상근 1개, 창영 1개 -> 창영이 승 / 'CY' 출력
- 돌이 3개일 때 : 상근 1개, 창영 1개, 상근 1개 -> 상근이 승 / 'SK'출력
- 돌이 4개일 때 : (상근 3개, 창영 1개) or (상근 1개, 창영 3개) -> 창영이 승 / 'CY'출력
- 돌이 5개일 때 : (상근 3개, 창영 1개, 상근 1개) or (상근1개, 창영 1개, 상근 3개) or (상근 1개, 창영 3개, 상근1개) -> 상근이 승 / 'CY' 출력
- .......
이렇게 보면 단순하게 홀수일 때는 'SK'출력, 짝수일 때는 'CY'를 출력하면 된다.
3. 코드
from sys import stdin
put = stdin.readline
num = int(put())
if num % 2 == 0:
print("CY")
else:
print("SK")
4. 느낀점
때로는 코딩 실력보다 독해 실력이 더 중요하다는 것을 깨닫는 하루였다.
이놈의 덤벙거림은 언제까지 나를 따라다니려나 싶다.
728x90