티스토리 뷰

반응형
시간 제한 메모리 제한 제출 정답 맞은 사람 정답 비율
1 초 128 MB 656 493 449 76.884%

문제

입력으로 주어지는 문자열에서 연속으로 3개의 문자가 JOI 또는 IOI인 곳이 각각 몇 개 있는지 구하는 프로그램을 작성하시오. 문자열을 알파벳 대문자로만 이루어져 있다. 예를 들어, 아래와 같이 "JOIOIOI"에는 JOI가 1개, IOI가 2개 있다.

입력

첫째 줄에 알파벳 10000자 이내의 문자열이 주어진다. 

출력

첫째 줄에 문자열에 포함되어 있는 JOI의 개수, 둘째 줄에 IOI의 개수를 출력한다.

예제 입력 

JOIOIOIOI 

예제 출력 

1 3 

힌트

 

출처

Olympiad 일본정보올림피아드 예선 JOI 2008 예선 2번

알고리즘 분류

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

#include <stdio.h>
#include <string.h>

int main()
{
    char str[10001];
    int i, length, joi = 0, ioi = 0;

    scanf("%s", str);

    length = strlen(str);

    for(i = 0; i < length; i++)
    {
        if(str[i] == 'J' && str[i + 1] == 'O' && str[i + 2] == 'I')
        {
            joi++;
        }
        if(str[i] == 'I' && str[i + 1] == 'O' && str[i + 2] == 'I')
        {
            ioi++;
        }
    }
    
    printf("%d\n%d", joi, ioi);
}

 

https://www.acmicpc.net/problem/5586

댓글

티스토리 방명록

최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday