[BOJ] 13034 다각형 게임 - P3

TaeGN·2024년 8월 17일

BOJ Platinum Challenge

목록 보기
21/114

문제풀이

  1. 다각형에 직선을 그어 양쪽으로 나눠지는 그런디 값을 이용한다.
  2. n을 증가시켜가며 n각형의 그런디 값을 구한다.

주의사항


소요시간

15분


package 백준.Platinum.P3.p13034_다각형게임

fun main() {
    fun result(N: Int): Int {
        val G = IntArray(N + 1)
        val arr = BooleanArray(N)
        for (i in 2..N) {
            arr.fill(true, 0, i)
            for (j in 0..(N - 2) / 2) {
                if (i - 2 - j >= 0) arr[G[j] xor G[i - 2 - j]] = false
            }
            G[i] = arr.indexOf(true)
        }
        return if (G[N] != 0) 1 else 2
    }
    println(result(readln().toInt()))
}

https://github.com/TaeGN/Algorithm/blob/master/src/%EB%B0%B1%EC%A4%80/Platinum/P3/p13034_%EB%8B%A4%EA%B0%81%ED%98%95%EA%B2%8C%EC%9E%84/p13034_%EB%8B%A4%EA%B0%81%ED%98%95%EA%B2%8C%EC%9E%84.kt


문제링크

https://www.acmicpc.net/problem/13034

0개의 댓글