※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 5586번 문제인 JOI와 IOI이다.
문제는 아래 링크를 확인하자.

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

 

5586번: JOI와 IOI

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

www.acmicpc.net

문제에서 주어지는 문자열을 읽어, "JOI"와 "IOI"의 개수를 세는 문제이다.

 

substr을 이용하여 간단하게 문제를 해결해보자.

 

아래는 제출한 소스코드이다.

#include <iostream>
#include <string>
using namespace std;

int main() {
	ios::sync_with_stdio(0);
	cin.tie(0);

	int JOI = 0, IOI = 0;
	string s; cin >> s;
	int slen = s.length();
	for (int i = 0; i < slen - 2; i++) {
		if (s.substr(i, 3) == "JOI") JOI++;
		else if (s.substr(i, 3) == "IOI") IOI++;
	}

	cout << JOI << '\n' << IOI;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 14731 // C++] 謎紛芥索紀 (Large)  (0) 2022.06.19
[BOJ 14729 // C++] 칠무해  (0) 2022.06.19
[BOJ 5587 // C++] 카드 캡터 상근이  (0) 2022.06.19
[BOJ 14730 // C++] 謎紛芥索紀 (Small)  (0) 2022.06.19
[BOJ 5590 // C++] 船旅  (0) 2022.06.19

+ Recent posts