문제 3141 · 비트 IV
문자 코드로 고르는 예약 알림
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 병원은 예약 안내 문자를 보내기 전에 예약 코드에서 발송 대상을 고른다. 예약 코드는 영문 대문자와 숫자로 이루어진 문자열이다. 코드의 첫 글자는 진료 시간대를 나타내고, 마지막 글자는 안내 문자 수신에 관한 표시를 나타낸다. 첫 글자가 M이면 오전 진료 예약이며, 마지막 글자가 Y이면 안내 문자 수신에 동의한 예약이다. 병원은 오전 진료 예약 중에서 문자 수신에 동의한 예약에만 이번 안내 문자를 보내기로 했다. 이번 작업에서 발송 대상이 되는 조건은 코드의 첫 글자가 M이고 마지막 글자가 Y인 것이다. 두 조건을 모두 만족해야 하며, 어느 하나만 만족하는 코드는 대상이 아니다. 예를 들어 첫 글자가 M이어도 마지막 글자가 숫자라면 제외한다. 마지막 글자가 Y이더라도 첫 글자가 다른 문자이면 제외한다. 코드의 가운데에 나타나는 M이나 Y는 판단에 영향을 주지 않는다. 코드에 포함된 숫자도 그 값이나 개수에 관계없이 판단에 사용하지 않는다. 입력에 주어지는 각 줄은 문자 한 건을 보낼 수 있는 예약 기록 한 건을 뜻한다. 같은 코드가 여러 번 주어져도 서로 다른 기록으로 취급하므로, 조건을 만족하는 코드가 세 줄에 나타나면 발송 건수에 3을 더한다. 코드의 순서를 바꾸거나 중복을 제거할 필요는 없다. 모든 코드는 길이가 2 이상이므로 첫 글자와 마지막 글자를 항상 확인할 수 있다. 코드에 공백이나 소문자는 들어 있지 않는다. 예약 코드 N개를 확인하여 이번 안내 문자를 보낼 기록의 수를 구한다. 결과는 코드의 개수가 아닌 조건을 만족하는 입력 기록의 개수이다. 조건을 만족하는 기록이 하나도 없으면 발송 건수는 0이다. 발송 대상의 코드 자체나 대상이 아닌 이유는 출력하지 않고 최종 건수만 출력한다.
입력
첫째 줄에 예약 기록의 수 N이 정수로 주어진다. 1 ≤ N ≤ 1,000이다. 다음 N개 줄에 예약 코드가 하나씩 주어진다. 각 코드는 영문 대문자 A부터 Z와 숫자 0부터 9로만 이루어지며, 길이는 2 이상 20 이하이다. 같은 코드가 여러 번 주어질 수 있다.
출력
첫 글자가 M이고 마지막 글자가 Y인 예약 기록의 수를 정수 하나로 출력한다. 해당 기록이 없으면 0을 출력한다.
예제 입력 1
5 M12Y MYY0 A9Y MY M12Y
예제 출력 1
3
예제 입력 2
3 Y1M MM AY
예제 출력 2
0
힌트 펼치기
- 각 코드의 첫 글자와 마지막 글자만 확인한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |