백준 9655번: 돌 게임

최창효·2022년 1월 16일
0
post-thumbnail

문제 설명

  • N개의 돌에서 1개 또는 3개씩 빼올 때 마지막 돌홀수번째에 빼는지 짝수번째에 빼는지 알아내는 문제와 동일합니다.

접근법

  • 1~3개를 가져오는 것이 아니라 1개 또는 3개를 가져와야 합니다.
  • 문제를 읽다보면 오로지N의 개수이기는 사람을 결정한다는 걸 알 수 있습니다.
    • 중간에 1개를 가져가든 3개를 가져가든 결과에 아무런 영향을 미치지 않습니다.
      • 그 이유는 A가 4번째 돌, B가 3번째 돌, A가 2번째 돌, B가 1번째 돌을 가지는 A->B->A->B와 A가 4번째 돌, 3번째 돌, 2번째 돌을 가지고 B가 1번째 돌을 가지는 A->B의 결과가 같기 때문입니다.
      • A->B->A == A
    • 1개를 가져오는 결과와 3개를 가져오는 결과가 어차피 같다면 1개를 가져오는 경우만 생각해도 상관없습니다.
      • A(A승),A->B(B승),A->B->A(A승),A->B->A->B(B승),A->B->A->B->A(A승),...
      • N홀수A가 승리하고, N짝수B가 승리합니다.

정답

# `N`이 `짝수`면 `창영`이가 이기고, `N`이 `홀수`면 `상근`이가 이깁니다.
N = int(input())
if N%2 == 0:
    print("CY")
else:
    print("SK")
profile
기록하고 정리하는 걸 좋아하는 개발자.

0개의 댓글