문제 3604 · 비트 III
책수레의 같은 분류 경계
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 도서관에서는 반납된 책을 책수레에 일렬로 세운 뒤 서가로 옮긴다. 각 책에는 분류를 나타내는 영어 대문자 한 글자가 붙어 있다. 같은 글자가 붙은 책은 같은 분류에 속하며, 서로 다른 글자가 붙은 책은 다른 분류에 속한다. 책수레에 놓인 책의 순서는 이미 정해져 있고 작업 중에 바꾸지 않는다. 담당자는 서로 이웃한 두 책이 같은 분류에 속하는 경계에 작은 점검표를 하나씩 끼우려 한다. 여기서 경계란 바로 붙어 있는 두 책 사이를 뜻한다. 첫 번째 책과 두 번째 책 사이, 두 번째 책과 세 번째 책 사이처럼 각각의 위치를 따로 살핀다. 두 책 사이에 다른 책이 하나라도 있으면 두 책의 분류가 같더라도 점검표를 끼우는 대상이 아니다. 같은 분류의 책이 여러 권 연속해서 놓여 있을 때에도 경계를 각각 센다. 예를 들어 같은 분류의 책 네 권이 연속해서 놓여 있다면 그 안에는 서로 이웃한 책 사이의 경계가 세 개 있으므로 점검표 세 개가 필요하다. 한 책이 왼쪽 경계와 오른쪽 경계의 판단에 모두 사용되어도 된다. 점검표를 끼우는 일은 책의 분류나 순서를 바꾸지 않는다. 책수레의 정보를 나타내는 문자열이 주어진다. 문자열의 왼쪽부터 각 글자는 책 한 권의 분류를 뜻한다. 모든 경계를 한 번씩 확인했을 때 필요한 점검표의 총개수를 구하는 프로그램을 작성한다. 책이 한 권뿐이면 책 사이의 경계가 없으므로 필요한 점검표는 0개다. 서로 이웃한 책의 분류가 모두 다른 경우에도 0을 출력한다. 책수레의 맨 앞과 맨 뒤는 서로 이웃한 것으로 보지 않는다.
입력
첫째 줄에 책의 수 N이 주어진다. 둘째 줄에 책의 분류를 나타내는 길이 N의 문자열 S가 주어진다. N은 1 이상 1,000 이하의 정수이며, S는 영어 대문자 A부터 Z까지만으로 이루어진다. 문자열에는 공백이 없다.
출력
필요한 점검표의 총개수를 정수 하나로 출력한다.
예제 입력 1
8 AABBBAAC
예제 출력 1
4
예제 입력 2
1 Z
예제 출력 2
0
예제 입력 3
5 ABABA
예제 출력 3
0
힌트 펼치기
- 문자열의 각 글자를 바로 앞 글자와 비교한다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |