[BOJ][⚪2][백준#09658] 돌 게임 4
작성:    
업데이트:
카테고리: BOJ Silver II
태그: BOJ, BOJ Silver, PS, Python
문제 출처
문제
돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 1개, 3개 또는 4개 가져갈 수 있다. 마지막 돌을 가져가는 사람이 게임을 지게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다.
입력
첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1000)
출력
상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.
예제
입력
6
출력
SK
My Sol
N = int(input())
X = 10 if N<6 else N
arr = [0]*(X+1)
arr[1] = arr[3] = 1
k = 5
while k <= N:
f = 0
for i in (1, 3, 4):
if arr[k-i]:
f = 1
break
if not f:
arr[k] = 1
k += 1
print('CY' if arr[N] else 'SK')
이전의 돌 게임과 비슷한 방식으로 풀어냈다. 상근이가 먼저 시작하고, 초기값만 배열에 설정해주고, 이전 값에서 모두 0이라면 상영이가 이길 수 밖에 없으므로 1을 체크해준다. 어려울 것이 없었다.
결과
맞았습니다!!
모범답안
from sys import stdin
input = stdin.readline
def solve():
n = int(input())
print('CY' if n % 7 in [1, 3] else 'SK')
내 연산시간의 절반쯤 되는 풀이가 있어 분석해보려 했으나 역시나 저번처럼 어이없는 풀이였다. 허무할 뿐이다.
댓글남기기