✍ 내 코드
from sys import stdin
def check(s, e):
flag = -1
for i in range(0, e - s + 1):
if i % 2 == 0 and S[sdx + i] != "I":
flag = i
break
elif i % 2 == 1 and S[sdx + i] != "O":
flag = i
break
return flag
read = stdin.readline
N = int(read())
M = int(read())
S = read()
sdx = result = 0
while sdx + 2 * N < M:
c = check(sdx, sdx + 2 * N)
if c == -1:
result += 1
sdx = sdx + 2 * N
while sdx + 2 < M and check(sdx, sdx + 2) == -1:
result += 1
sdx += 2
else:
sdx += c if c != 0 else 1
print(result)
✍ 팁
- 시간 단축을 위해 이미 확인한 부분에 대해서 건너뛰는 작업을 생각해야 한다.
- 인터넷에 내 코드보다 훌륭한 코드들이 있지만 모두 같은 로직이고 나와 같은 코드가 없기에 그대로 올려본다 >ㅡ<