[백준 python] 9658번 돌 게임 4 - 동적프로그래밍(DP)

2022. 3. 1. 15:01·지난 글 모음
반응형

[백준 python] 9658번 돌 게임 4 - 동적프로그래밍

레벨: 실버2

언어: python


문제풀러가기

 

9658번: 돌 게임 4

상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다.

www.acmicpc.net

📑풀이 과정

DP를 이용해서 풀이할 수 있는 문제이다.

나는 이 문제를 풀기 위해 돌이 N개 있을 때

후공자의 승패 여부를 dp 배열에 저장하고 사용하였다.

 

dp[N]이 True 면 선공자의 승이면서 후공자의 패이다.

 

아래의 표와 같이 후공이 지고 이기는 상황을 알 수 있다.

 

이때 돌이 N개 일때 누가 이기는 알기 위해서
N - 1 일때
N - 3 일때
N - 4 일때
후공자가 승인지 패인지를 보면 현재 게임에서 누가 이기는지 알 수 있다.

상근이가 돌을 가져가는 갔을 때 후공자 창영이가 승하면 상근이는 패하고
후공자 창영이가 패하면 상근이가 승한다.

 

돌 수 1 2 3 4 5 6
후공자 승 패 승 패 승 패 패 패

 

📋풀이 코드

N = int(input())

dp = [False]* 1001
dp[2] = True

for i in range(4, N+1):
  if not dp[i-1]:
    dp[i] = True
  if not dp[i-3]:
    dp[i] = True
  if not dp[i-4]:
    dp[i] = True

print('SK' if dp[N] else 'CY')

if not dp[i-1]

돌 N개에서 한개를 가져온 값이 False면 후공자가 패 한 것이고 현재 게임에서는 선공자가 이기게 된다.

나머지 밑에 if문도 같은 맥락이다.

다른 풀이

다른 풀이를 찾아보니깐 7개 마다 패승 규칙이 반복된다고 한다.
반복되는 규칙을 찾아서 코드를 작성해도 풀 수 있다.


반응형

'지난 글 모음' 카테고리의 다른 글

[백준 python] 15904번 UCPC는 무엇의 약자일까? - 그리디  (0) 2022.03.03
[백준 python] 1037번 약수  (0) 2022.03.02
[백준 python] 2225번 합분해 - 동적프로그래밍(DP)  (0) 2022.02.27
[백준 python] 2579번 계단 오르기 - 동적프로그래밍(DP)  (0) 2022.02.27
[백준 python] 2644번 촌수계산 DFS - 파이썬  (2) 2022.02.25
'지난 글 모음' 카테고리의 다른 글
  • [백준 python] 15904번 UCPC는 무엇의 약자일까? - 그리디
  • [백준 python] 1037번 약수
  • [백준 python] 2225번 합분해 - 동적프로그래밍(DP)
  • [백준 python] 2579번 계단 오르기 - 동적프로그래밍(DP)
코딩하자영아
코딩하자영아
코딩공부내용 정리
  • 코딩하자영아
    코드치고 무게치고
    코딩하자영아
  • 전체
    오늘
    어제
    • 분류 전체보기 (82)
      • 개발 (1)
      • 지난 글 모음 (81)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    sw정글사관학교
    python
    React
    node.js
    정글sw
    목록 창 만들기
    Spring
    Coding Test
    자바스크립트
    html input
    dfsbfs
    리액트
    onChange
    JavaScrpit
    HTML
    javascript
    사용자 정의 객체
    malloc-lab
    회원가입 폼
    conding test
    sw 정글
    템플릿 문자열
    프로그래머스
    PINTOS
    SW정글
    회원가입
    Express
    자바스크립트 문자열 변수
    코딩테스트
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
코딩하자영아
[백준 python] 9658번 돌 게임 4 - 동적프로그래밍(DP)
상단으로

티스토리툴바