알고리즘 풀이/JUNGOL

[정올 2514] 문자열 찾기

mhko411 2021. 7. 16. 14:32
728x90

문제

주어진 문자열에서 연속 3개의 문자가 IOI 이거나 KOI인 문자열이 각각 몇 개 있는지 찾는 프로그램을 작성하라.

문자열은 알파벳의 대문자로만 이루어진다. 

예를 들어 "KOIOIOI"라는 문자열은 KOI 1개 , IOI 2개가 포함되어있다.

 

입력

입력은 한 줄이며 10,000자 이하의 알파벳 대문자로 구성된다.

 

출력

출력은 2줄이며, 첫 번째 줄에는 KOI의 개수, 두 번째 줄에는 IOI의 개수를 각각 출력하라.


접근

찾아야하는 단어의 길이가 3으로 일정하다. 따라서 입력된 문자에서 첫 번째 인덱스부터 접근하고 길이가 3개만큼 잘라서 비교하도록 하였다.

 

구현

- 현재 인덱스부터 +3까지 되는 길이의 문자를 잘라서 "KOI"와 "IOI"를 비교한다.

- 같을 경우 각각의 수를 증가시켜준다.

for i in range(len(word) - 2):
    if word[i:i+3] == 'KOI':
        KOI += 1
    elif word[i:i+3] == 'IOI':
        IOI += 1

전체 코드

import sys
input = sys.stdin.readline

word = input().strip()
KOI = 0
IOI = 0

for i in range(len(word) - 2):
    if word[i:i+3] == 'KOI':
        KOI += 1
    elif word[i:i+3] == 'IOI':
        IOI += 1

print(KOI)
print(IOI)

'알고리즘 풀이 > JUNGOL' 카테고리의 다른 글

[정올 1006] 로봇  (0) 2021.06.23
[정올 1082] 화염에서탈출  (0) 2021.06.22
[정올 1078] 저글링 방사능 오염  (0) 2021.06.22
[정올 1214] 히스토그램  (0) 2021.06.11
[정올 1809] 탑  (0) 2021.06.10