※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 27333번 문제인 JOI エディタ (JOI Editor)이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/27333
27333번: JOI エディタ (JOI Editor)
この例では置換は行われない.最終的に JOI Editor に書かれている文字列は joijoi であるので,joijoi を出力する.
www.acmicpc.net
'j', 'o', 'i'의 세 종류의 문자로 이루어진 문자열이 입력으로 들어올 때, 이 문자열을 앞에서부터 읽어나가며 같은 두 문자가 인접해있는 것을 발견할 때마다 그 두 문자를 대문자로 바꿔주는 문제이다.
위에서 서술한 내용을 그대로 구현해 문제를 해결해주자. 문자를 대문자로 바꾸는 것은 toupper함수를 이용하거나 아스키코드에서 대응되는 대소문자 사이의 코드값의 차가 일정함을 이용하는 것으로 구현할 수 있다.
아래는 제출한 소스코드이다.
#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 = 1; i < slen; i++) {
if (s[i] == s[i - 1]) s[i - 1] += 'A' - 'a', s[i] += 'A' - 'a';
}
cout << s;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 27324 // C++] ゾロ目 (Same Numbers) (0) | 2023.01.31 |
---|---|
[BOJ 27326 // C++] 二人三脚 (Three-Legged Race) (0) | 2023.01.30 |
[BOJ 27329 // C++] 繰り返し文字列 (Repeating String) (0) | 2023.01.30 |
[BOJ 27328 // C++] 三方比較 (Three-Way Comparison) (0) | 2023.01.30 |
[BOJ 27330 // C++] 点数 (Score) (0) | 2023.01.30 |