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 |