문제 4465 · 바이트 IV
도서관 선반 표찰 검사
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
도서관에서는 이동식 선반을 정리하면서 각 선반에 붙은 표찰을 전산 목록에 옮기고 있다. 담당자는 목록의 각 문자열이 새 표찰 규칙에 맞는지 확인하려 한다. 이 작업은 문자열의 글자를 차례로 확인하는 방식으로 수행하며, 잘못된 문자열을 고쳐 쓰지는 않는다. 입력된 문자열마다 유효 여부를 하나씩 판정하면 된다. 새 표찰은 정확히 여섯 글자로 이루어진다. 첫째 글자와 둘째 글자는 모두 영문 대문자여야 하며, 두 글자는 서로 달라야 한다. 이 두 글자는 선반이 속한 구역을 나타낸다. 어떤 대문자 조합이든 두 글자가 서로 다르면 사용할 수 있다. 구역 글자를 사전순으로 배치해야 한다는 조건은 없으므로 ZA처럼 뒤쪽 알파벳이 먼저 나오는 조합도 허용된다. 셋째 글자는 반드시 하이픈인 -여야 한다. 넷째 글자부터 여섯째 글자까지는 모두 숫자여야 하며, 넷째 글자는 0이어서는 안 된다. 따라서 뒤의 세 글자는 100부터 999까지의 선반 번호를 나타낸다. 다섯째 글자와 여섯째 글자에는 0을 사용할 수 있다. 선반 번호에 같은 숫자가 반복되어도 된다. 문자열의 길이가 다르거나, 지정된 위치에 다른 종류의 글자가 있거나, 앞의 두 대문자가 같으면 유효하지 않다. 소문자를 대문자로 바꾸거나 밑줄을 하이픈으로 바꾸는 처리는 하지 않는다. 숫자 앞에 0을 추가하거나 이미 있는 0을 없애는 처리도 하지 않는다. 입력된 문자열 그 자체가 모든 조건을 만족해야 한다. 목록에는 같은 문자열이 여러 번 나타날 수 있다. 중복된 문자열을 하나로 합치지 않고 등장할 때마다 각각 판정한다. 또한 다른 줄에 어떤 표찰이 있는지는 현재 문자열의 유효 여부에 영향을 주지 않는다. N개의 문자열을 입력된 순서대로 검사하여 규칙을 모두 만족하면 VALID를, 하나라도 만족하지 않으면 INVALID를 출력한다.
입력
첫째 줄에 검사할 문자열 수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 30000이다. 다음 N개 줄에 문자열이 하나씩 주어진다. 각 문자열의 길이는 1 이상 10 이하이며, 영문 대문자, 영문 소문자, 숫자, 하이픈(-), 밑줄(_)로만 이루어진다. 문자열 내부에는 공백이 없다.
출력
N개 줄에 걸쳐 입력된 순서대로 각 문자열의 검사 결과를 출력한다. 유효한 문자열이면 VALID, 유효하지 않은 문자열이면 INVALID를 출력한다. 출력은 모두 영문 대문자로 작성한다.
예제 입력 1
6 AB-123 AA-123 ZA-900 Ab-123 CD-099 EF_456
예제 출력 1
VALID INVALID VALID INVALID INVALID INVALID
예제 입력 2
5 XY-100 XY-999 A-123 AB-1234 XY-100
예제 출력 2
VALID VALID INVALID INVALID VALID
힌트 펼치기
- 길이를 먼저 확인한 뒤 각 위치의 글자를 검사한다.
- 숫자 부분을 정수로 바꾸지 않아도 첫 숫자와 나머지 숫자의 범위를 확인할 수 있다.
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |