아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

소 자릿수 게임

면접 대비

시간 제한1초메모리 제한128 MB

요약
각 시작 수에서 두 사람이 번갈아 그 수의 가장 큰 자릿수나 가장 작은 0이 아닌 자릿수를 빼며 0을 만든 사람이 이긴다. 선공의 승패를 판정한다.
난이도

보통10점 중 5점

유형
동적 계획법, 게임 이론, 수학, 구현
정답자
아직 제출이 없습니다

문제

베시(Bessie)가 농부 존(Farmer John)을 상대로 숫자 게임을 합니다. 베시가 이길 수 있도록 도와주세요.

각 게임은 정수 NN (1≤N≤1,000,0001 \le N \le 1{,}000{,}000)에서 시작합니다. 베시가 먼저 두고, 이후 두 사람이 번갈아 차례를 갖습니다. 각 차례에 현재 플레이어는 현재 수의 자리 숫자 중 가장 큰 숫자, 또는 00이 아닌 가장 작은 숫자를 골라 현재 수에서 뺍니다. 예를 들어 30143014에서는 11 또는 44를 뺄 수 있어 30133013 또는 30103010이 됩니다. 수가 00이 될 때까지 게임이 계속되며, 마지막으로 수를 움직여 00을 만든 플레이어가 이깁니다.

베시와 농부 존은 GG번의 게임 (1≤G≤1001 \le G \le 100)을 합니다. 두 사람 모두 최적으로 플레이한다고 할 때(즉, 자신의 승리를 보장하는 수가 있으면 반드시 그 수를 둡니다), 각 게임에서 누가 이기는지 판정하세요.

예를 들어 N=13N = 13인 경우를 봅시다. 베시가 먼저 33을 빼서 1010을 만듭니다. 농부 존은 어쩔 수 없이 11을 빼서 99를 만듭니다. 베시가 99를 빼서 00을 만들며 이깁니다.

입력

  • 첫째 줄: 정수 GG.
  • 2…G+12 \ldots G+1번째 줄: i+1i+1번째 줄에는 게임 ii의 시작 수 NiN_i가 하나씩 주어집니다.

출력

  • 1…G1 \ldots G번째 줄: ii번째 줄에 베시가 게임 ii에서 이기면 "YES", 그렇지 않으면 "NO"를 출력합니다.

힌트

시작 수가 99이면 베시는 99를 빼서 곧바로 이깁니다. 시작 수가 1010이면 베시는 (00은 뺄 수 없으므로) 11을 빼야 하고 99가 남습니다. 그러면 농부 존이 99를 빼서 이기므로 베시는 집니다.

예제4

  1. 예제 1

    입력
    2
    9
    10
    
    예상 출력
    YES
    NO
    
  2. 예제 2

    입력
    1
    1
    
    예상 출력
    YES
    
  3. 예제 3

    입력
    1
    13
    
    예상 출력
    YES
    
  4. 예제 4

    입력
    9
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    예상 출력
    YES
    YES
    YES
    YES
    YES
    YES
    YES
    YES
    YES