[Algorithm] 9660. 돌 게임 6

유지민·2024년 2월 19일
0

Algorithm

목록 보기
33/75
post-thumbnail

9660. 돌 게임 6

9660 문제 보기

Difficulty : Gold 5

Status : Failed

Time : 00:25

접근 방식

DP로 접근하려고 했지만, N의 최댓값이 1,000,000,000,000이어서 분명 시간초과가 날 것 같았다.
DP 테이블을 출력해 확인한 결과,

#1 - 상근
#2 - 창영
#3 - 상근
#4 - 상근
#5 - 상근
#6 - 상근
#7 - 창영
#8 - 상근
#9 - 창영
#10 - 상근
#11 - 상근
#12 - 상근
#13 - 상근
#14 - 창영
#15 - 상근
#16 - 창영
#17 - 상근
#18 - 상근
#20 - 상근
#21 - 창영

2부터 시작해서 +5, +2, +5, +2, ... 순서로 창영이가 이기는 경우라는 규칙을 발견했다.
따라서 N을 7로 나눈 나머지가 0 또는 2일 때에는 창영이의 승, 나머지 경우에는 상근이의 승으로 구별할 수 있다.

최종 코드

N = int(input())
print('CY' if N % 7 == 0 or N % 7 == 2 else 'SK')

배운점

게임 이론: DP라는 해결방식으로부터 컴퓨터의 계산능력을 이용해 무지성 풀이가 가능한 방법
게임 이론에 대한 내용을 많이 참고한 블로그 URL이다!

profile
끊임없이 도전하며 사고하는 주니어 Web 개발자 유지민입니다.

0개의 댓글

Powered by GraphCDN, the GraphQL CDN