내용으로 건너뛰기
테페리넷
사용자 도구
등록
로그인
사이트 도구
검색
도구
문서 보기
Fold/unfold all
역링크
미디어 관리자
사이트맵
등록
로그인
>
미디어 관리자
사이트맵
현재 위치:
테페리넷
»
Problem Solving
»
문제
»
백준 온라인 저지 (BOJ)
»
돌 게임 3
ps:problems:boj:9657
이 문서는 읽기 전용입니다. 원본을 볼 수는 있지만 바꿀 수는 없습니다. 문제가 있다고 생각하면 관리자에게 문의하세요.
====== 돌 게임 3 ====== ===== 풀이 ===== * [[ps:problems:boj:9656]]에서 한번에 4개의 돌을 가져갈 수 있는 방법이 추가되었다. * 이 규칙이 추가된 것만으로, 간단한 논리로 승리포지션의 규칙성을 찾는 것이 꽤 까다로워졌다. N의 범위가 작으므로 규칙성을 찾지 못해도, DP를 이용해서 승리 포지션을 계산할수 있다 * 논리적으로 도출해내기는 조금 까다로울 뿐, 단순한 규칙이 존재하기는 한다. [[ps:problems:boj:9660]]은 이 문제에서 N의 범위를 늘려서 반드시 규칙성을 이용해야만 풀리도록 만든 문제이다. * 각 포지션에서 이동 가능한 포지션은 O(1)개이고, N개의 포지션에 대해서 계산해야 하므로, 총 O(N)에 계산 가능하다. ===== 코드 ===== <dkpr py> """Solution code for "BOJ 9657. 돌 게임 3". - Problem link: https://www.acmicpc.net/problem/9657 - Solution link: http://www.teferi.net/ps/problems/boj/9657 Tags: [Game theory] """ def main(): N = int(input()) is_win_pos = [False] * (N + 5) for i in range(N + 1): if not is_win_pos[i]: is_win_pos[i + 1] = is_win_pos[i + 3] = is_win_pos[i + 4] = True print('SK' if is_win_pos[N] else 'CY') if __name__ == '__main__': main() </dkpr> {{tag>BOJ ps:problems:boj:실버_3}}
ps/problems/boj/9657.txt
· 마지막으로 수정됨: 2023/06/14 05:01 저자
teferi
문서 도구
문서 보기
역링크
Fold/unfold all
맨 위로