문제 3764 · 비트 III
함께 빌릴 자전거
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공유 자전거 보관소에는 N개의 거치대가 왼쪽부터 오른쪽으로 한 줄로 놓여 있다. 각 거치대에는 자전거가 한 대씩 있으며, 안내판에는 각 자전거의 현재 상태가 문자 하나로 표시되어 있다. 문자열 S의 i번째 문자는 왼쪽에서 i번째 거치대에 있는 자전거의 상태를 뜻한다. 문자 A는 지금 빌릴 수 있는 자전거, 문자 U는 다른 이용자가 사용 예약을 해 둔 자전거, 문자 X는 점검 때문에 빌릴 수 없는 자전거를 뜻한다. 상태 문자는 이 세 가지뿐이다. U와 X는 빌릴 수 없는 이유가 다르지만, 이번에 두 사람이 빌릴 자전거를 고를 때는 모두 선택할 수 없는 상태로 취급한다. 함께 도착한 두 사람은 서로 바로 이웃한 거치대에서 자전거를 한 대씩 빌리려 한다. 따라서 왼쪽에서 i번째와 i+1번째 거치대의 자전거가 모두 A 상태일 때만 그 두 거치대를 하나의 후보 쌍으로 정한다. 두 거치대 사이에 다른 거치대가 있으면 두 자전거가 모두 A여도 후보 쌍이 아니다. 관리자는 실제 대여를 진행하기 전에 가능한 후보 쌍의 개수만 세려 한다. 후보를 하나 셌다고 해서 자전거의 상태가 바뀌지는 않는다. 따라서 한 자전거가 서로 다른 두 후보 쌍에 포함되어도 된다. 예를 들어 A 상태의 자전거 세 대가 연속해 있으면 왼쪽 두 대와 오른쪽 두 대가 각각 후보가 되어 두 쌍으로 센다. 같은 두 거치대에서 누가 어느 자전거를 탈지는 구분하지 않는다. 첫 번째 거치대와 마지막 거치대는 서로 이웃하지 않는다. 거치대가 하나뿐이거나 조건을 만족하는 두 거치대가 없으면 후보 쌍의 개수는 0이다. 주어진 상태 문자열을 보고 두 사람이 선택할 수 있는 후보 쌍의 개수를 구한다.
입력
첫째 줄에 거치대의 개수인 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 둘째 줄에 길이가 N인 문자열 S가 주어진다. S는 영문 대문자 A, U, X로만 이루어져 있다.
출력
첫째 줄에 가능한 후보 쌍의 개수를 정수 하나로 출력한다.
예제 입력 1
8 AAAUAAAX
예제 출력 1
4
예제 입력 2
1 A
예제 출력 2
0
예제 입력 3
6 AUXAUA
예제 출력 3
0
힌트 펼치기
- 문자열의 연속한 두 문자가 모두 A인지 확인한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |