문제
주민등록번호는 13개의 숫자로 이루어져 있으며 다음과 같은 규칙을 가지고 있다.
첫 6자리는 태어난 날의 연도, 월, 일을 나타내는 숫자이며, YYMMDD 형태로 표시된다.
예를 들어 1912년 12월 20일에 출생한 사람의 앞의 첫 6자리 주민등록번호는 ‘121220’이다.
주민등록번호의 7번째 숫자는 그 사람의 성별을 나타내는데, 1900년~1999년에 태어난 사람은 7번째 숫자가 남자는 ‘1’, 여자는 ‘2’이다.
그리고, 2000년~2099년에 태어난 사람은 7번째 숫자가 남자는 ‘3’, 여자는 ‘4’이다.
주민등록번호의 마지막 13번째 숫자는 이 주민번호가 유효한지 확인하는 인식자를 의미한다.
주민등록번호 생성원리 공개는 금지되어 있으므로, 이 문제에서는 13번째 번호의 생성원리를 다음과 같이 임의로 정의한다.
즉, 1번째 자리부터 12번째 자리까지의 각 숫자들을 더한 값을 ‘10’으로 나눈 나머지가 마지막 13번째 숫자가 되는 것으로 정한다.
당신은 주어진 주민등록번호가 엉터리 번호인지 아니면 유효한 번호인지 여부를 확인하는 유효성 검사를 해야 한다.
여기에서 말하는 유효한 주민등록번호는 상기 규칙에 의거하여, 실제로 생성될 수 있는 주민등록번호를 의미한다.
예를 들면, ‘1212201234569’는 1번째부터 12번째까지 숫자의 합이 29 ( 1+2+1+2+2+0+1+2+3+4+5+6 = 29 )이며,
이를 10으로 나눈 나머지는 9이다.
이는 13번째 숫자와 일치하므로 ‘1212201234569’는 유효한 주민등록번호가 된다.
하지만 1212201234567’은 13번째 숫자가 9가 아닌 7이므로 유효하지 않은 주민등록번호이다.
주민등록번호의 유효성 검사를 위해서 윤년인 경우도 고려해야 한다. 윤년이 평년과 다른 점은 2월이 29일까지 존재한다는 것이다.
윤년 계산 방법은 그레고리력 달력의 계산원리에 의해 다음과 같다.
4의 배수가 되는 해는 윤년이다. 4의 배수 중 100의 배수가 되는 해는 윤년이 아니다. 100의 배수 중 400의 배수가 되는 해는 윤년이다.
위 원리에 의거해서 1600년, 2000년은 윤년이며 1700년, 1800년, 1900년은 윤년이 아니다.
예를 들면 ‘0402291000008’은 1904년이 윤년이므로 2월 29일이 존재하기 때문에 유효한 주민번호이다.
입력
첫 번째 라인에 입력되는 숫자 N ( 0 < N ≤ 100 )은 입력되는 주민등록번호의 개수를 의미한다.
그 다음 N개 라인에서 각 라인마다 주민등록번호가 하나씩 입력된다. 모든 주민등록번호는 0~9 사이의 숫자 13자리로 이루어져 있다.
출력
입력된 주민등록번호를 본문의 규칙에 의해 검사하여 유효한 주민등록번호이면 “YES”를 유효하지 않은 주민등록번호이면 “NO”를 출력한다.
예제
3
1212201234569
1212201234567
0402291000008
YES
NO
YES