| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1 초 | 1024 MB | 207 | 157 | 148 | 78.723% |
배열 회전을 성공적으로 끝낸 승원이는 이제 문자열 회전을 하려고 한다. 알파벳 대문자로만 이루어진 길이 $N$의 문자열 $S$가 주어질 때, 문자열 회전을 최대 $N$번 시행해 $S$에 존재하는 부분 문자열 GSHS의 개수를 최대로 만들려고 한다.
문자열 회전이란 다음과 같다:
부분 문자열의 정의는 아래 노트를 참고하라.
첫 번째 줄에 문자열의 길이 $N$이 주어진다.
두 번째 줄에 알파벳 대문자로만 이루어진 문자열 $S$가 주어진다.
첫 번째 줄에 만들 수 있는 부분 문자열 GSHS의 최대 개수를 출력하라.
| 번호 | 배점 | 제한 |
|---|---|---|
| 1 | 4 | 문자열은 |
| 2 | 10 | $N \le 4$ |
| 3 | 27 | $N \le 1 \, 000$ |
| 4 | 59 | 추가 제약 조건 없음 |
4 GHSS
1
$l=2$, $r=3$으로 회전을 $1$회 해주면 문자열은 GSHS가 되고, 최대 $1$개를 만들 수 있다.
10 GSHSHSGSHH
2
$l=6$, $r=10$으로 회전, 그 뒤 $l=7$, $r=9$으로 회전해 총 $2$회 회전해주면 문자열은 GSHSHHGSHS가 되고, 최대 $2$개를 만들 수 있다.
4 SSHS
0
어떻게 회전을 해도 GSHS를 만들 수 없으므로, 최대 $0$개를 만들 수 있다.
9 ABCDEFGHI
0
문자열 $S$의 부분 문자열이란, $S$의 왼쪽 끝과 오른쪽 끝에서 $0$개 이상의 문자를 제거해서 만들 수 있는 문자열을 의미한다. 예를 들어 GSHSSSHS의 부분 문자열로는 GSHS, SSHS, HSSSH 등이 있고, 부분 문자열이 아닌 것으로는 GH, A, HSH 등이 있다.
School > 경기과학고등학교 > IamCoder Qualification Test > 2026 IamCoder Qualification Test A번