티스토리 뷰
728x90
https://www.acmicpc.net/problem/5525
- 해설 :
N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다.
- P1 IOI
- P2 IOIOI
- P3 IOIOIOI
- PN IOIOI...OI (O가 N개)
I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 군데 포함되어 있는지 구하는 프로그램을 작성하시오.
- 풀이 :
Pn을 만나면 IOI 조건을 만족하는 동안 index를 1씩 증가시키며 구간을 잘라준다. 이 구간이 하나의 Pn카운트이므로 이것이 총 몇 개 있는지 확인하면 된다.
- 소스코드 :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import sys
input = sys.stdin.readline
if __name__ == "__main__":
N = int(input())
M = int(input())
S = input().strip()
answer = 0
count = 0
i = 1
while i < M - 1:
if S[i-1] == "I" and S[i] == "O" and S[i+1] == "I":
count += 1
if count == N:
count -= 1
answer += 1
i += 1
else:
count = 0
i += 1
print(answer)
|
cs |
320x100
'Algorithm > Implementation' 카테고리의 다른 글
(Python) - BOJ(7568번) : 덩치 (0) | 2022.02.03 |
---|---|
(Python) - BOJ(5568번) : 카드 놓기 (0) | 2022.02.03 |
(Python) - BOJ(5430번) : AC (0) | 2022.02.03 |
(Python) - BOJ(2872번) : 우리집엔 도서관이 있어 (0) | 2022.02.01 |
(Python) - BOJ(2847번) : 게임을 만든 동준이 (0) | 2022.02.01 |
댓글
© 2022 WonSeok, All rights reserved