https://www.acmicpc.net/problem/5525
PN: IOI가 N번 반복되는 상태S 안에 PN 패턴이 몇 번 등장하는지완전 탐색을 이용해 패턴을 찾고 그 패턴이 몇 번 나오는지 카운트했습니다.
i = 0 # 문자열 s 인덱스
ioi = 0 # IOI가 나타난 횟수
cnt = 0 # PN 패턴 카운트
while i < m-1: # s의 길이만큼 반복
if s[i:i+3] == "IOI": # IOI가 나타나면
ioi += 1 # 나타난 횟수 증가
if ioi >= n: # 나타난 횟수가 PN 패턴 이상이라면
cnt += 1 # 카운트 증가
i += 2 # IOI의 3번째 I부터 다시 검사 시작
else: # 아니라면
ioi = 0 # 연속된 ioi의 횟수가 끊기면 0으로 초기화
i += 1 # 인덱스 증가
import sys
input = sys.stdin.readline
def func():
i = 0 # s 인덱스
ioi = 0 # IOI 개수
cnt = 0 # 패턴 카운트
while i < m-1:
if s[i:i+3] == "IOI":
ioi += 1
if ioi >= n:
cnt += 1
i += 2 # IOI의 3번째 I부터 다시 검사 시작
else:
ioi = 0
i += 1
return cnt
if __name__ == "__main__":
n = int(input())
m = int(input())
s = input().rstrip()
print(func())