백준 5525 IOIOI

홍찬우·2023년 7월 31일
0

문제

IOIOI

반복되는 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)

결과

중간에 어려워서 다른 풀이를 조금 참조했다. 혼자서 풀 수 있도록 연습이 필요한 문제였다.

profile
AI-Kid

0개의 댓글