[백준 27333] JOI エディタ (JOI Editor) (C#, C++) - soo:bak
작성일 :
문제 링크
27333번 - JOI エディタ (JOI Editor)
설명
특정 조건의 문자열 변환을 수행하는 문제입니다.
문자열은 'j'
, 'o'
, 'i'
세 개의 문자로 구성되며, 동일한 문자가 연속해서 나타날 경우 그 부분을 해당 문자의 대문자로 변환해야 합니다.
따라서, 입력으로 주어진 문자열을 순회하며, 연속된 동일 문자가 있는지 확인합니다.
연속된 동일 문자를 찾으면, 그 부분을 해당 문자의 대문자로 변환합니다.
C#
에서 문자열은 불변이므로, char[]
형태로 변환해서 다루어야 함에 주의합니다.
Code
[ C# ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
namespace Solution {
class Program {
static void Main(string[] args) {
var n = int.Parse(Console.ReadLine()!);
var s = Console.ReadLine()!;
var charArr = s.ToCharArray();
for (int i = 0; i < n - 1; i++) {
if (charArr[i] == charArr[i + 1]) {
charArr[i] = char.ToUpper(charArr[i]);
charArr[i + 1] = char.ToUpper(charArr[i + 1]);
i++;
}
}
s = new string(charArr);
Console.WriteLine(s);
}
}
}
[ C++ ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n; cin >> n;
string s; cin >> s;
for (int i = 0; i < n - 1; i++) {
if (s[i] == s[i + 1]) {
s[i] = toupper(s[i]);
s[i + 1] = toupper(s[i + 1]);
i++;
}
}
cout << s << "\n";
return 0;
}