문제
코드
My answer
import sys
input = sys.stdin.readline
n=int(input())
dp=[0]*(n+1)
for i in range(1,n+1):
if(i<3):dp[i]=dp[i-1]+1
else:dp[i]=min(dp[i-3]+1, dp[i-1]+1)
if(dp[n]%2==1):print("SK")
else:print("CY")
#print(dp)
Another answer
n = int(input())
if n % 2 == 0:
print('CY')
else:
print('SK')
풀이
허무한 문제였다. dp 문제여서 우선 n이 3보다 작을 때(dp[0],dp[1],dp[2])일 때는 상근이는 무조건 1만 뽑을 수 있고, 창영이는 못내거나 1만 낼 수 있기 때문에 그냥 dp[i]=dp[i-1]+1로 해주었고, 이 다음부터는 예를 들어 4일 때는 dp[3]+1과 dp[1]+1을 비교해줬는데, dp[3]+1은 이전 사람이 3을 내고 1내는거, dp[1]+1은 이전에 1내고 3내는거 이런식의 의미로 dp[4]의경우 dp[3]과 dp[1]이 똑같이 1이기 때문에 dp[4]=2가 된다. 이렇게 진행하고 맨마지막에 dp에 저장된 수가 짝수면 창영이가, 홀수면 상근이가 이건 것이다. dp[4]=2로, 앞에 상근이가 1을 내던 3을 내던 무조건 창영이가 이기게된다.
난 이런식으로 그냥 풀었는데, 위 규칙을 통해 몇번해보다면 n이 짝수면 창영이가, 홀수면 상근이가 무조건 이기는 게임이었다;;;
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #11053- 가장 긴 증가하는 부분 수열 (0) | 2023.09.18 |
---|---|
[Python] 백준 #17626- Four Squares (0) | 2023.09.18 |
[Python] 백준 #1010- 다리 놓기 (0) | 2023.09.18 |
[Python] 백준 #10870- 피보나치 수 5 (0) | 2023.09.18 |
[Python] 백준 #2110- 공유기 설치 (2) | 2023.09.14 |