문제 출처: https://www.acmicpc.net/problem/5525
Silver 2
p1 = IOI
p2 = IOIOI -> IOI가 2번 반복
p3 = IOIOIOI -> IOI가 3번 반복
하기 때문에, index를 수를 증가해가며 IOI를 찾고 만약 이 패턴을 발견하면 index를 2번 옮긴다.
IOIOI
일 경우, IOI를 체크하고 2번 이동한 후에 IO, IOI를 체크해야하기 때문에 0으로 만들기보단pattern -= 1
를 해준다
if __name__ == '__main__':
N = int(input())
M = int(input())
string = input()
index = 1
answer = 0
pattern = 0
while index < M-1:
if string[index-1] == 'I' and string[index] == 'O' and string[index+1] == 'I':
pattern += 1
if pattern == N:
answer += 1
pattern -= 1
index += 1
else:
pattern = 0
index += 1
print(answer)