문제 3098 · 비트 III
바로 이어지는 같은 곡
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
음악 스트리밍 앱에서 하루 동안 재생한 곡의 기록을 확인하려 한다. 재생 기록은 길이가 N인 배열이며, 첫 번째 원소부터 마지막 원소까지 실제로 곡을 재생한 순서대로 저장되어 있다. 각 원소에는 곡을 구별하는 양의 정수 번호가 들어 있다. 번호가 같으면 같은 곡이고, 번호가 다르면 서로 다른 곡이다. 곡 번호의 크기는 재생 순서나 곡의 길이와 관계가 없다. 앱은 같은 곡을 바로 이어서 재생한 횟수를 표시하려 한다. 이를 위해 두 번째 기록부터 마지막 기록까지 차례로 확인한다. 확인하는 기록의 곡 번호가 바로 앞 기록의 곡 번호와 같으면 횟수를 1 늘린다. 서로 다르면 횟수를 늘리지 않는다. 첫 번째 기록은 바로 앞 기록이 없으므로 확인 대상에서 제외한다. 같은 곡을 여러 번 연속해서 재생했다면, 서로 이웃한 기록을 각각 따로 확인한다. 따라서 같은 곡이 세 번 연속으로 기록되어 있으면 횟수는 2 늘어난다. 한 기록이 앞 기록과 같다는 이유로 확인에서 빠지거나 지워지는 일은 없다. 모든 비교는 처음 주어진 재생 기록을 기준으로 수행한다. 이전에 들었던 곡을 다시 들었더라도 그 사이에 다른 곡이 있다면 바로 이어서 재생한 것으로 세지 않는다. 또한 하루의 마지막 기록과 첫 번째 기록은 서로 이어져 있지 않으므로 비교하지 않는다. 곡 번호 자체를 더하거나, 같은 번호가 하루 전체에 몇 번 나타났는지를 세는 것도 아니다. 오직 기록에서 나란히 놓인 두 곡의 번호가 같은지만 확인한다. 재생 기록은 적어도 하나 주어진다. 기록이 하나뿐이거나, 바로 이어지는 두 기록의 곡 번호가 같은 곳이 하나도 없다면 표시할 횟수는 0이다. 주어진 재생 기록에 대해 앱이 표시해야 할 횟수를 구하는 프로그램을 작성한다.
입력
첫째 줄에 재생 기록의 개수 N이 주어진다. N은 1 이상 1,000 이하의 정수다. 둘째 줄에 재생 순서대로 곡 번호 A_1, A_2, ..., A_N이 공백으로 구분되어 주어진다. 각 곡 번호는 1 이상 1,000,000,000 이하의 정수다.
출력
바로 앞 기록과 곡 번호가 같은 기록의 개수를 정수 하나로 출력한다. 해당하는 기록이 없으면 0을 출력한다.
예제 입력 1
8 17 17 42 17 17 17 8 8
예제 출력 1
4
예제 입력 2
5 1000000000 3 1000000000 3 1000000000
예제 출력 2
0
예제 입력 3
1 999999999
예제 출력 3
0
힌트 펼치기
- 두 번째 기록부터 바로 앞 기록과 비교한다.
관련 서재 장
알고리즘 분류
배열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |