※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 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
'BOJ' 카테고리의 다른 글
[BOJ 12778 // C++] CTP공국으로 이민 가자 (0) | 2023.01.14 |
---|---|
[BOJ 6605 // C++] Humble Numbers (0) | 2023.01.14 |
[BOJ 18413 // C++] 最頻値 (Mode) (0) | 2023.01.14 |
[BOJ 18408 // C++] 3 つの整数 (Three Integers) (0) | 2023.01.14 |
[BOJ 18410 // C++] マージ (Merge) (0) | 2023.01.14 |