반복되는 IOI의 개수 계산
난이도 : Silver1
1. IOI 개수와 Pn 개수를 저장하는 변수를 각각 선언
2. 둘을 적절히 조절해 연산
import sys
N = int(sys.stdin.readline())
M = int(sys.stdin.readline())
S = sys.stdin.readline()
answer = i = count = 0 # answer은 Pn 개수, count는 IOI 개수
while i < M - 1:
if S[i:i+3] == 'IOI': # IOI를 찾으면,
count += 1 # IOI 1 증가
i += 2 # 인덱스 i를 2만큼 증가
if count == N: # IOI 개수(count) == N이면
answer += 1 # 답+1
count -= 1 # IOI 개수 -1 => 만약 Pn='IOIOI', S='IOIOIOI' 에서 [0:5]인 IOIOI 찾으면 다시 처음으로 돌아가는 것이 아닌, count 개수로 조절해서 연산
else: # IOI가 아니면 count를 0으로 되돌림
count = 0
i += 1
print(answer)
중간에 어려워서 다른 풀이를 조금 참조했다. 혼자서 풀 수 있도록 연습이 필요한 문제였다.