백준 문제풀이

5525 - IOIOI (S1) / 문자열

RonLee 2022. 9. 22. 18:37
"""
5525 - IOIOI (S1)
"""

# 1. 입력
N = int(input())
sep = ["I", "O", "I"]
for _ in range(1, N):
    sep.append("O")
    sep.append("I")
sep_len = len(sep)

arr_len = int(input())
arr = list(input())

count = 0
for i in range(arr_len - sep_len):
    if arr[i : (i + sep_len)] == sep:
        count += 1
print(count)

1. 첫 번째 시도 : 50 점

- sep 리스트와 arr 리스트 생성

- arr리스트를 인덱스들을 하나하나 돌면서 sep과 같은 것 찾기

- 문자열이 길어지면 timeout 나는 듯?

 

"""
5525 - IOIOI (S1)
"""

N = int(input())
arr_len = int(input())
arr = input()

result = 0
count = 0
i = 0
while i < arr_len:
    if arr[i : i + 3] == "IOI":
        i += 2
        count += 1
        if N == count:
            result += 1
            count -= 1
    else:
        i += 1
        count = 0

print(result)

- 리스트 생성 X

- 문자열 0 번 인덱스부터 보기 

   * IOI 찾기 -> 찾으면 인덱스 번호인 i 변수 +2 

                   -> 못 찾으면 i 변수 +1

* result, count 변수 활용  / while 문 -> 조건문