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

 

이번에 볼 문제는 백준 18415번 문제인 キャピタリゼーション (Capitalization)이다.
문제는 아래 링크를 확인하자.

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

 

18415번: キャピタリゼーション (Capitalization)

JOI 君は長さ N の文字列 S を見つけた.S に含まれる文字はすべて英小文字である. JOI 君はこの文字列から自分の名前である joi が連続している部分を先頭から順にすべて探しだすこと

www.acmicpc.net

소문자로 이루어진 문자열이 주어질 때, 모든 "joi"와 일치하는 부분문자열을 "JOI"로 바꾸어 출력하는 문제이다.

 

substr 메소드를 이용해 주어진 문자열의 모든 세 글자 부분문자열을 확인하고 "joi"를 "JOI"로 바꾸어 문제를 해결하자.

 

여담으로, "joi"는 서로 다른 문자들로 구성되어있으므로 서로 다른 두 "joi"가 겹쳐있거나 하는 일을 걱정할 필요는 없다.

 

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

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

int slen;
string s;

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

	cin >> slen >> s;

	for (int i = 2; i < slen; i++) {
		if (s.substr(i - 2, 3) == "joi") {
			s[i - 2] = 'J';
			s[i - 1] = 'O';
			s[i] = 'I';
		}
	}

	cout << s;
}
728x90

+ Recent posts