그냥 하는 노트와 메모장

BOJ 3032 승리 본문

Solved problems

BOJ 3032 승리

coloredrabbit 2020. 5. 21. 17:28

* BOJ 3032 승리

[분류 - 다이나믹 프로그래밍]


  원형 다이나믹을 많이 풀어봤다면 비교적 쉽게 느껴질 문제입니다.


[풀이]

  1. 1부터 N까지 각각을 첫 번째 수로 보고 진행한다.

  2. 고를 수 있는 수가 최대 두 개가 되는데, 이 때 어떤 것을 골라야 필승인지를 검사하는 로직을 추가한다. 즉, 상대가 무조건 지는 경우가 있는지 탐색한다.

  현재 골라야하는 플레이어는 골라야하는 수의 구간으로 알 수 있으며 그 때까지 선영이가 선택한 홀수의 개수를 저장해두었다가 모든 수를 다 사용했을 때, 누가 승리하는지 판단하도록 구성해주면 된다.


dp[l][r][c] = 선영이가 c개의 홀수를 얻었고, 현재 플레이어는 l번째 수 또는 r번째 수를 선택할 수 있을 때의 승리 가능성



'Solved problems' 카테고리의 다른 글

BOJ 1176 섞기  (0) 2020.05.24
BOJ 1797 균형잡힌 줄서기  (0) 2020.05.22
BOJ 12103 짝합 수열, 7976 수열  (0) 2020.05.21
BOJ 15807 *빛*영*우*  (0) 2020.05.21
BOJ 3948 홍준이의 친위대  (0) 2020.05.20
Comments