Python/백준

[Python/백준/9655번] 돌 게임

아웃라이어_ 2020. 10. 2. 17:45

출처 : www.acmicpc.net/problem/9655

 

9655번: 돌 게임

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

www.acmicpc.net

* 이 포스팅은 Baekjoon online judge 9655번 "돌 게임" 문제풀이입니다.

   문제 원본은 링크를 클릭하시면 확인하실 수 있습니다.

# 문제 설명

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

  • 탁자 위에 돌 N개가 있다.

  • 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개 또는 3개 가져갈 수 있다.

  • 마지막 돌을 가져가는 사람이 게임을 이기게 된다.

  • 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오.

  • 게임은 상근이가 먼저 시작한다.

# 입력

  • 첫째 줄에 N이 주어진다. $(1<=N<=1000)

# 출력

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

입출력 예
입력 출력
5 SK

# 설명

  • 상근이부터 게임을 시작하므로 상근이는 처음에 1개 또는 3개를 가져갈 수 있다.

  • 2번째 차례인 창영이 역시 1개 또는 3개를 가져갈 수 있으므로 상근이의 2번째 턴에서는 다음과 같은 4가지 경우의 수가 존재한다.

    • 상근(1) - 창영(1) : N-2개

    • 상근(1) - 창영(3) : N-4개

    • 상근(3) - 창영(1) : N-4개

    • 상근(3) - 창영(3) : N-6개

  • 즉, 게임이 진행되는 동안 계속 N개에서 짝수개가 줄어든다.

  • N이 짝수일 경우 짝수개가 줄어드고 난 뒤 상근이가 마지막 남은 1개를 가져갈 수 있으므로 상근이가 이기게 된다.

  • N이 홀수일 경우 상근이는 마지막 남은 1개를 가져갈 수 없으므로 창영이가 이기게 된다.

  • 이를 파이썬 코드로 구현하면 다음과 같다.

1
2
3
4
5
N = int(input())
if N % 2 == 0:
    print("CY")
else:
    print("SK")
cs