문제 3304 · 비트 I
끊기지 않은 별빛 기록
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
천문대에서는 관측 장비가 별빛을 얼마나 오래 끊김 없이 기록했는지 확인하려 한다. 장비는 일정한 길이의 관측 구간마다 결과를 한 글자로 남긴다. 별빛을 정상적으로 기록한 구간은 대문자 O로, 구름에 가려 정상적으로 기록하지 못한 구간은 대문자 X로 표시한다. 모든 관측 구간의 길이는 같으며, 기록에는 빠진 구간이 없다. 하루의 기록은 시간 순서대로 이어 붙인 하나의 문자열이다. 문자열의 첫 글자가 가장 이른 구간이고 마지막 글자가 가장 늦은 구간이다. 서로 이웃한 두 글자는 실제로도 바로 이어지는 두 관측 구간을 나타낸다. 천문대 담당자는 이 문자열에서 정상 기록이 연속으로 이어진 구간의 최대 개수를 찾으려 한다. 정상 기록이 연속되려면 그 사이에 X가 한 번도 나타나지 않아야 한다. O가 이어지다가 X가 나오면 그 연속 기록은 끝난다. 이후 다시 O가 나오면 새로운 연속 기록이 시작되며, 앞에서 끝난 기록의 길이를 이어받지 않는다. 문자열의 맨 앞이나 맨 뒤에서 이어지는 O도 다른 위치의 연속 기록과 똑같이 계산한다. 담당자에게 필요한 값은 가장 긴 연속 기록의 길이 하나다. 가장 긴 길이를 가진 부분이 여러 곳에 있더라도 위치나 등장 횟수는 구하지 않는다. 따라서 같은 최대 길이가 여러 번 나타나면 그 길이를 한 번만 출력한다. 모든 구간이 X라면 정상 기록이 없으므로 길이는 0이다. 반대로 모든 구간이 O라면 전체 구간 수가 답이다. 관측 구간 수와 기록 문자열이 주어질 때, O가 연속으로 등장하는 최대 길이를 구하는 프로그램을 작성한다.
입력
첫째 줄에 관측 구간 수를 나타내는 정수 N이 주어진다. 1 ≤ N ≤ 1,000이다. 둘째 줄에 길이가 정확히 N인 문자열 S가 주어진다. S는 영문 대문자 O와 X로만 이루어지며 공백을 포함하지 않는다. O는 숫자 0이 아닌 영문자다.
출력
문자열 S에서 O가 연속으로 등장하는 최대 길이를 정수 하나로 출력한다. O가 하나도 없으면 0을 출력한다. 같은 최대 길이의 부분이 여러 곳에 있어도 길이만 한 번 출력한다.
예제 입력 1
12 XOOOXOOOOXXO
예제 출력 1
4
예제 입력 2
5 XXXXX
예제 출력 2
0
예제 입력 3
7 OOOXOOO
예제 출력 3
3
힌트 펼치기
- 현재 위치에서 끝나는 연속 O의 길이를 관리한다.
- X를 만나면 현재 연속 길이를 0으로 바꾼다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |