백준/DP

[코딩테스트] 백준 9655번: 돌게임

ydin 2022. 1. 7. 09:22

-문제: https://www.acmicpc.net/problem/9655

 

9655번: 돌 게임

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

www.acmicpc.net

어려워 보이지만 알고보면 굉장히 쉬운 문제다. 복잡하게 생각하지 말고 문제를 이해하면 됨. 

  • 예제에서 주어진 돌이 5개일 때 상근이가 이긴 과정을 생각해 보았을 때 다음과 같다

 

이때 발견한 것이 한번에 가져가는 돌의 개수가 1개 또는 3개 즉 홀수 이므로 N이 홀수라면 상근이를 거친 후 남은 돌의 개수는 짝수이고, N이 짝수라면 상근이를 거친 후 남은 돌의 개수는 홀수이다. 

  • 홀->짝->홀->짝->,,,,->1 :이때 순서인 사람이 이긴다
  • 짝->홀->짝->홀->,,,,->1 :이때 순서인 사람이 이긴다

그러다 무심코 N이 4, 즉 짝수일 때를 해봤는데 창영이가 이겼다. 그래서 N이 홀수면 상근이가 이기고, N이 짝수면 창영이가 이기나?하고 코드를 짜봤더니 정답이었다. 문제를 이해하려고 했으면 금방 풀 수 있었던 문제다

-정답풀이:

n=int(input())

if n%2==0:
    print('CY')
else:
    print('SK')