c언어

문자열찾기

pororo 2026. 5. 9. 14:23
주어진 문자열에서 연속 3개의 문자가 IOI 이거나 KOI인 문자열이 각각 몇 개 있는지 찾는 프로그램을 작성하라.
문자열은 알파벳의 대문자로만 이루어진다. 
예를 들어 "KOIOIOI"라는 문자열은 KOI 1개 , IOI 2개가 포함되어있다.

#include <stdio.h>


int main() {
	char c[10000];
	scanf("%s", c);
	int cnt1 = 0;
	int cnt2 = 0;
	
	for (int i = 0; c[i + 2] != '\0'; i++) {
		if (c[i] == 'K' && c[i + 1] == 'O' && c[i + 2] == 'I') {
			cnt1++;
		}
		if (c[i] == 'I' && c[i + 1] == 'O' && c[i + 2] == 'I') {
			cnt2++;
		}
	}
	printf("%d\n%d", cnt1, cnt2);
}

문자열을 입력 받은뒤 for문을 이용하여 마지막 배열이 널(\0)문자를 만나기 전까지 반복 한다. 

여기서 if문에서 입력 받은 값이 KOI이면 cnt1에 값에 1을 더하고 그다음 중복 또한 체크를 해야하기 

때문에 다시 if문을 이용하여 IOI가 있으면 cnt2에 값에 1을 더한다 그 다음 for문을 빠져나와 KOI와 IOI가 몇번 쓰여있는지를 각각 출력 한다.

'c언어' 카테고리의 다른 글

대각선 지그재그  (0) 2026.05.11
이진수  (1) 2026.05.09
디미고에 가고 싶어!  (0) 2026.05.09
체육은 수학과목 입니다.  (0) 2026.05.09
숫자의 개수  (0) 2026.05.09