1. 문제 출처
https://www.acmicpc.net/problem/5525
2. 풀이
그냥 문제대로 구현해 본다.
# 입력
n = int(input())
length = int(input())
S = input()
p = "IO"*n+"I"
idx = 0
count = 0
# I일 때 p와 비교해서 똑같으면 count+=1
while idx < length:
if S[idx] == "I":
if idx + len(p) <= length:
if p == S[idx:idx+len(p)]:
count +=1
else:
break
idx+=1
print(count)
이렇게 하면 실행시간이 길기 때문에 50점이 나온다
#입력
n = int(input())
length = int(input())
S = input()
idx = 0
count = 0
result = 0
# IOI 가 n만큼 반복될 때
while idx < length:
if S[idx:idx+3] == "IOI":
count+=1
idx +=2
if count == n :
# result를 1씩 추가한다.
count-=1
result +=1
else:
count = 0
idx +=1
print(result)
'알고리즘' 카테고리의 다른 글
9324-백준-진짜 메세지 (0) | 2023.03.10 |
---|---|
2002-백준-추월 (0) | 2023.03.09 |
3048-백준-개미 (0) | 2023.03.04 |
9322-백준-철벽 보안 알고리즘 (0) | 2023.03.02 |
2941-백준-크로아티아 알파벳 (0) | 2023.02.27 |