문제 3551 · 비트 IV
예약판의 대기 표시
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 병원에서는 다음 날의 예약 현황을 확인하기 위해 간단한 문자 예약판을 사용한다. 예약판에는 등록된 예약마다 상태를 나타내는 영문 대문자 하나가 적혀 있다. 직원은 예약을 등록한 순서대로 이 문자들을 이어 붙여 하나의 문자열 S를 만들었다. 문자열의 각 위치는 서로 다른 예약 하나에 대응한다. 예약 상태에 사용하는 문자는 A, W, C의 세 가지뿐이다. A는 진료 시간이 확정된 예약이고, W는 진료 시간이 정해지기를 기다리는 대기 예약이며, C는 취소된 예약이다. 모든 예약은 이 세 상태 중 정확히 하나에 속한다. 문자열에는 공백이나 다른 종류의 문자가 들어가지 않으며, 영문 소문자도 사용하지 않는다. 직원은 내일 연락해야 할 대기 예약이 몇 건인지 확인하려 한다. 대기 예약 한 건마다 연락 한 번이 필요하므로, 문자열에서 W가 나타나는 횟수가 곧 필요한 연락 횟수이다. 확정된 예약이나 취소된 예약에는 이번 작업에서 연락하지 않는다. 따라서 A와 C는 답에 포함하지 않는다. 같은 상태 문자가 여러 번 이어져 있어도 각 위치는 별개의 예약이다. 예를 들어 W가 연속해서 적혀 있다면 그 문자들을 하나의 대기 묶음으로 세는 것이 아니라, 각 문자에 해당하는 예약을 모두 센다. 반대로 서로 떨어진 위치에 있는 W도 빠짐없이 각각 센다. 문자열의 맨 앞이나 맨 뒤에 있는 문자에도 같은 규칙을 적용한다. 예약판에는 적어도 한 건의 예약이 있지만, 대기 예약은 한 건도 없을 수 있다. 이때 필요한 연락 횟수는 0이다. 모든 예약이 대기 상태라면 문자열의 길이만큼 연락해야 한다. 예약의 순서나 연속한 문자의 길이를 출력할 필요는 없으며, 여러 예약 중 하나를 선택하는 문제도 아니므로 동점 처리는 없다. 예약 건수 N과 상태 문자열 S가 주어졌을 때 대기 예약의 총수를 구하는 프로그램을 작성한다.
입력
첫째 줄에 예약 건수를 나타내는 정수 N이 주어진다. 둘째 줄에 길이가 정확히 N인 문자열 S가 주어진다. 1 ≤ N ≤ 1,000 S의 각 문자는 A, W, C 중 하나이다.
출력
문자열 S에서 W가 나타나는 횟수를 정수 하나로 출력한다. W가 없으면 0을 출력한다.
예제 입력 1
8 AWWCAWCW
예제 출력 1
4
예제 입력 2
5 ACCAA
예제 출력 2
0
예제 입력 3
1 W
예제 출력 3
1
힌트 펼치기
- 문자열을 처음부터 끝까지 살펴보며 현재 문자가 W인지 확인한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |