[BOJ] 18940 숫자 카드 제거 게임 - P1

TaeGN·2024년 9월 3일

BOJ Platinum Challenge

목록 보기
46/114

문제풀이

  1. 완전 탐색으로 아래와 같이 그런디의 배열을 출력해보고 규칙을 찾는다. (그런디가 0이 되는 규칙 찾기)
  2. 0 ~ 42까지의 숫자 중에서는 0, 4, 8, 14, 20, 24, 28, 34, 38, 42가 그런디가 0이고,
    그 이후에는 직전 숫자에 (+12, +4, +4, +10, +4)를 한 숫자가 그런디가 0이 되는 것을 알 수 있다.

주의사항


소요시간

35분


package 백준.Platinum.P1.p18940_숫자카드제거게임

fun main() {
    val setLowerThan42 = setOf(0, 4, 8, 14, 20, 24, 28, 34, 38, 42)
    val setHigherThan42 = setOf(0, 12, 16, 20, 30)
    val mod = 34
    val sb = StringBuilder()
    fun result(n: Int): String {
        if (n % 2 == 1) return "Yuto"
        if (n in setLowerThan42) return "Platina"
        if (n > 42 && (n - 42) % mod in setHigherThan42) return "Platina"
        return "Yuto"
    }
    repeat(readln().toInt()) {
        sb.appendLine(result(readln().toInt()))
    }
    println(sb)
}

https://github.com/TaeGN/Algorithm/blob/master/src/%EB%B0%B1%EC%A4%80/Platinum/P1/p18940_%EC%88%AB%EC%9E%90%EC%B9%B4%EB%93%9C%EC%A0%9C%EA%B1%B0%EA%B2%8C%EC%9E%84/p18940_%EC%88%AB%EC%9E%90%EC%B9%B4%EB%93%9C%EC%A0%9C%EA%B1%B0%EA%B2%8C%EC%9E%84.kt


문제링크

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


회고

출력된 배열을 보고 규칙성을 발견하기 했지만 왜 저런 규칙이 나오는지는 아직 모르겠다.

0개의 댓글