문제 3590 · 비트 I
나란히 놓인 자전거
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
공유 자전거 보관소에는 일렬로 이어진 거치대가 있다. 관리자는 보관소를 직접 방문하기 전에 거치대의 상태를 나타내는 문자열을 확인한다. 문자열의 각 문자는 왼쪽부터 차례대로 거치대 하나의 상태를 나타낸다. 대문자 B는 자전거가 놓여 있는 거치대이고, 마침표 .은 비어 있는 거치대다. 문자열에는 이 두 종류의 문자만 들어 있다. 관리자는 자전거가 여러 대 모여 있는 곳부터 점검하려 한다. 이를 위해 자전거가 놓인 거치대가 연속으로 이어지는 구간 가운데 가장 긴 구간의 길이를 알아내야 한다. 한 구간에 포함된 모든 문자는 B여야 하며, 구간의 길이는 그 구간에 들어 있는 거치대의 수다. 중간에 빈 거치대가 하나라도 있으면 그 양쪽의 자전거들은 서로 다른 구간에 속한다. 빈 거치대를 건너뛰어 두 구간을 합칠 수는 없다. 거치대는 직선으로 배치되어 있다. 따라서 문자열의 첫 번째 거치대와 마지막 거치대는 이웃하지 않으며, 양 끝에 자전거가 있더라도 하나의 구간으로 연결하지 않는다. 점검하는 동안 자전거가 추가되거나 이동하는 일은 없고, 입력으로 주어진 상태만을 사용한다. 가장 긴 구간이 여러 개라면 어느 구간인지 구분할 필요 없이 공통된 길이만 구한다. 모든 거치대가 비어 있어 자전거가 놓인 구간이 하나도 없다면 길이를 0으로 정한다. 반대로 모든 거치대에 자전거가 놓여 있다면 전체 거치대 수가 답이다. 거치대의 상태를 보고 관리자가 확인할 가장 긴 연속 구간의 길이를 출력하는 프로그램을 작성한다.
입력
첫째 줄에 거치대 수를 나타내는 정수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에 길이가 정확히 N인 문자열 S가 주어진다. S의 각 문자는 B 또는 .이다.
출력
자전거가 놓인 거치대가 연속으로 이어지는 가장 긴 구간의 길이를 정수 하나로 출력한다. 자전거가 하나도 없으면 0을 출력한다.
예제 입력 1
12 BB.BBBB..BBB
예제 출력 1
4
예제 입력 2
5 .....
예제 출력 2
0
예제 입력 3
6 BB..BB
예제 출력 3
2
힌트 펼치기
- 빈 거치대를 만나면 현재 연속 길이를 0으로 바꾼다.
관련 서재 장
알고리즘 분류
구현문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |