본문으로 이동
코드패스 by Devin.KR

문제 3758 · 비트 III

주차권 코드 점검

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

주차장 관리 담당자는 입구 단말기에서 수집한 주차권 코드 목록을 점검한다. 단말기에 입력된 문자열에는 정상적인 코드뿐 아니라 글자가 빠지거나 잘못 들어간 문자열도 섞여 있다. 담당자는 목록을 다시 발급 시스템에 넘기기 전에, 정해진 형식을 만족하는 항목이 몇 개인지 확인하려 한다. 정상적인 주차권 코드는 정확히 일곱 글자로 이루어진다. 첫 번째 글자는 영문 대문자 P이다. 두 번째부터 네 번째까지는 각각 숫자 0부터 9 중 하나이며, 이 세 글자를 이어 붙인 부분은 000이면 안 된다. 다섯 번째 글자는 하이픈(-)이다. 여섯 번째와 일곱 번째 글자는 각각 영문 대문자 A부터 Z 중 하나이다. 이 조건들을 모두 만족해야 정상적인 코드로 판단한다. 숫자 부분에는 앞자리의 0이 허용된다. 예를 들어 숫자 부분 007은 사용할 수 있지만 000은 사용할 수 없다. 마지막 두 글자는 서로 같아도 된다. 영문 대문자와 소문자는 구별하므로 첫 글자가 소문자 p이거나 마지막 두 글자 중 하나가 소문자이면 형식에 맞지 않는다. 정해진 위치 외에 하이픈이 들어가거나 글자가 하나라도 더 붙은 경우도 정상으로 세지 않는다. 목록에는 N개의 문자열이 있고, N은 1 이상 1,000 이하의 정수이다. 각 문자열의 길이는 1 이상 20 이하이다. 문자열에는 영문 대문자, 영문 소문자, 숫자, 하이픈만 등장하며 공백은 없다. 같은 문자열이 여러 번 나타날 수도 있다. 이번 작업은 서로 다른 코드의 수를 구하는 작업이 아니므로, 같은 정상 코드가 여러 줄에 나타나면 각 줄을 따로 센다. 정규식 대신 문자열의 길이와 각 위치의 문자를 확인하는 방식으로 검사한다. 조건에 맞는 항목의 총개수를 출력한다. 정상적인 코드가 하나도 없으면 0을 출력한다. 항목 사이의 순위나 동점 처리는 필요하지 않다.

입력

첫째 줄에 정수 N이 주어진다.
다음 N개 줄에 검사할 문자열이 한 줄에 하나씩 주어진다.
1 ≤ N ≤ 1,000이며 각 문자열의 길이는 1 이상 20 이하이다. 문자열은 영문 대소문자, 숫자, 하이픈으로만 이루어진다.

출력

정상적인 주차권 코드에 해당하는 항목의 개수를 출력한다. 같은 정상 코드가 반복되면 등장한 횟수만큼 센다.

예제 입력 1

5
P007-AA
P000-BC
p123-AB
P918-ZQ
P12-AB

예제 출력 1

2

예제 입력 2

3
P001-ZZ
P001-ZZ
P999-AA

예제 출력 2

3

예제 입력 3

4
P000-AA
P123-Aa
P1234-AB
Q123-AB

예제 출력 3

0
힌트 펼치기
  • 길이가 7인지 먼저 확인하면 각 위치의 문자를 안전하게 검사할 수 있다.
  • 숫자 세 글자가 모두 0인 경우를 제외한다.

출처: Devin.KR 자체 제작

알고리즘 분류문자열구현

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)