본문 바로가기
Develop/백준 (Cpp)

[백준] 5586번 : JOI와 IOI (C++)

by Tarra 2023. 2. 3.

5586번 : JOI와 IOI


문제 )

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

 

 

입력 :

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

 

 

출력 :

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

 

 

 

 

풀이)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    int cnt_joi = 0, cnt_ioi = 0;
    string word;
    cin >> word;
 
    if (word.length() > 2) {
        for (int i = 0; i < word.length() - 2; i++) {
            if (word.substr(i, 3== "JOI") {
                cnt_joi++;
            }
            else if (word.substr(i, 3== "IOI") {
                cnt_ioi++;
            }
        }
    }
    cout << cnt_joi << "\n" << cnt_ioi;
 
    return 0;
}
 
cs

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

 

5586번: JOI와 IOI

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

www.acmicpc.net