문제 3822 · 비트 III
쉬지 않고 달린 구간
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 마라톤 대회의 운영팀은 참가자가 코스를 어떤 방식으로 이동했는지 기록하는 간단한 서비스를 준비했다. 코스에는 출발점부터 결승점까지 순서대로 N개의 관찰 구간이 있다. 각 구간에서 참가자가 달렸다면 문자 R을 기록하고, 걸었다면 문자 W를 기록한다. 모든 관찰 구간은 같은 길이이며, 한 구간에는 반드시 문자 하나만 기록된다. 구간 안에서의 세부적인 속도 변화는 고려하지 않고 이미 작성된 기록만 사용한다. 운영팀은 완주 기록에 참가자가 쉬지 않고 달린 가장 긴 연속 구간의 길이를 덧붙이려고 한다. 여기서 길이는 거리나 시간이 아니라 연속해서 나타나는 R의 개수다. 기록 문자열에서 서로 이웃한 문자들만 하나의 연속 구간으로 묶을 수 있다. 중간에 W가 하나라도 있으면 그 앞과 뒤의 R은 서로 다른 연속 구간에 속한다. 예를 들어 R 두 개 다음에 W가 나오고 다시 R 세 개가 나온다면, 이 두 부분을 합쳐 길이가 5인 연속 구간으로 볼 수 없다. 문자열의 맨 앞이나 맨 뒤에 있는 R도 다른 위치의 R과 똑같이 센다. 다만 코스는 출발점과 결승점이 다른 일직선 순서이므로 문자열의 마지막 문자 다음에 첫 번째 문자가 이어진다고 보지 않는다. 가장 긴 연속 구간이 여러 곳에 나타나더라도 그 위치나 개수를 출력할 필요는 없다. 모든 구간에서 걸었다면 달린 연속 구간이 없으므로 결과는 0이다. 모든 구간에서 달렸다면 결과는 N이다. 참가자 한 명의 기록 문자열이 주어질 때, 운영팀이 덧붙일 가장 긴 연속 구간의 길이를 구하는 프로그램을 작성한다.
입력
첫째 줄에 관찰 구간의 수를 나타내는 정수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에 길이가 정확히 N인 문자열 S가 주어진다. S는 대문자 R과 W로만 이루어지며, 왼쪽부터 코스의 관찰 순서를 나타낸다.
출력
R이 연속해서 나타나는 최대 개수를 정수 하나로 출력한다. R이 하나도 없으면 0을 출력한다.
예제 입력 1
10 RRWRRRWWRR
예제 출력 1
3
예제 입력 2
4 WWWW
예제 출력 2
0
예제 입력 3
1 R
예제 출력 3
1
힌트 펼치기
- R을 만나면 현재 연속 길이를 1 늘리고, W를 만나면 현재 연속 길이를 0으로 바꾼다.
관련 서재 장
알고리즘 분류
문자열구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |