반응형
문제
https://www.acmicpc.net/problem/9655
9655번: 돌 게임
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
www.acmicpc.net
🐍파이썬
import sys
n = int(sys.stdin.readline())
i = n // 3 #turn:홀수인 경우 상근, 짝수인 경우 창영
n %= 3
i += n
if i % 2 == 1:
print("SK")
else:
print("CY")
가져갈 수 있는 돌의 갯수는 1개 또는 3개이므로 매번 3개씩 각자 가져갔다고 치고 전체 돌의 갯수를 3으로 나누었다.
3번씩 가져간 마지막 턴이 누구의 턴인지 알기 위해 n//3을 해서 i값을 구했고 n값은 3으로 나눈 나머지로 업데이트했다.
나머지로 남은 돌은 하나씩 가져가게 했다.(turn도 1씩 더해서 체크한다)
최종적으로 누가 마지막 turn이었는지 확인한다. 처음 시작(#1)이 상근이이므로 i값(=turn)이 홀수이면 상근이의 이니셜을, i값이 짝수이면 창영이의 이니셜을 출력했다.
다른 풀이 방법
n=int(input())
print("CY" if n%2==0 else "SK")
n%2로 답이 나오는 문제였다.
너무 복잡하게 생각했다...
반응형
'Problem Solving > 백준' 카테고리의 다른 글
[백준|파이썬] 14719: 빗물 (골드5) (0) | 2023.05.04 |
---|---|
[백준|파이썬] 7568: 덩치 (실버5) (2) | 2023.04.30 |
[백준|파이썬] 4673: 셀프 넘버 (실버5) (0) | 2023.04.29 |
[백준|파이썬] 21966: (중략) (실버5) (0) | 2023.04.27 |
[백준|파이썬] 25757: 임스와 함께하는 미니게임 (실버5) (0) | 2023.04.23 |
[백준|파이썬] 2891: 카약과 강풍 (실버5) (0) | 2023.04.21 |