문제 3515 · 비트 III
회의실 코드 점검표
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
회의실 예약 화면을 새로 만들면서, 관리 담당자는 예전 자료에 저장된 회의실 코드가 현재의 표기 규칙을 따르는지 점검하려 한다. 예전 자료에는 정상 코드뿐 아니라 자릿수가 부족한 코드, 소문자가 섞인 코드, 기호가 들어간 코드도 남아 있다. 프로그램은 입력된 문자열을 수정하지 않고 각 문자열이 규칙을 만족하는지만 판단해야 한다. 정상적인 회의실 코드는 정확히 네 글자다. 첫 글자는 영문 대문자 A부터 Z 중 하나이며, 회의실이 속한 구역을 나타낸다. 둘째 글자부터 넷째 글자까지는 모두 숫자 0부터 9 중 하나여야 한다. 마지막 세 글자가 나타내는 번호는 001부터 999까지다. 따라서 번호 부분이 000인 코드는 사용할 수 없다. 번호의 앞에 붙은 0은 자릿수를 맞추는 필수 문자이므로 생략할 수 없다. 예를 들어 C027은 대문자 하나와 숫자 세 개로 이루어져 있고 번호가 000이 아니므로 정상이다. 반면 C27은 길이가 세 글자라서 정상 코드가 아니며, c027은 첫 글자가 소문자라서 정상 코드가 아니다. C000도 사용하지 않는 번호를 포함하므로 정상 코드가 아니다. 문자열 앞뒤에 문자를 추가하거나, 대소문자를 바꾸거나, 기호를 지운 뒤 검사해서는 안 된다. 점검표의 각 줄은 서로 독립된 검사 대상이다. 같은 문자열이 여러 줄에 나타나면 나타난 횟수만큼 각각 검사하고 센다. 실제로 그 이름의 회의실이 존재하는지는 확인하지 않으며, 오직 위 표기 규칙만 적용한다. 점검표에 적힌 N개의 문자열 중 정상적인 회의실 코드의 개수를 구한다. 정상 코드가 하나도 없거나 점검표가 비어 있으면 개수는 0이다.
입력
첫째 줄에 문자열 수 N이 주어진다. N은 0 이상 1,000 이하의 정수다. 다음 N개 줄에는 검사할 문자열이 하나씩 주어진다. 각 문자열의 길이는 1 이상 20 이하이며, 영문 대문자, 영문 소문자, 숫자, 하이픈(-), 밑줄(_)로만 이루어진다. 문자열 안에는 공백이 없다.
출력
표기 규칙을 모두 만족하는 문자열의 개수를 정수 하나로 출력한다. 해당 문자열이 없으면 0을 출력한다.
예제 입력 1
6 C027 c027 C27 C000 Z999 A001
예제 출력 1
3
예제 입력 2
4 A001 A001 B-12 AB12
예제 출력 2
2
예제 입력 3
0
예제 출력 3
0
힌트 펼치기
- 길이를 먼저 확인한 다음 각 위치에서 허용하는 문자인지 검사한다.
- 숫자 세 글자가 모두 0인 경우는 제외한다.
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |