[BOJ][⚪2][백준#09658] 돌 게임 4

작성:    

업데이트:

카테고리:

태그: , , ,

문제 출처

BAEKJOON Online Judge #9658


문제

돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 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')

내 연산시간의 절반쯤 되는 풀이가 있어 분석해보려 했으나 역시나 저번처럼 어이없는 풀이였다. 허무할 뿐이다.

댓글남기기