https://www.acmicpc.net/problem/1213
๋ฌธ์
์ํ์์ ์๋ฌธ๋น์ ์๋ก ์ฌ๋ํ๋ ์ฌ์ด์ด๋ค.
์ํ์๋ ์ธ์์์ ํฐ๋ฆฐ๋๋กฌ์ธ ๋ฌธ์์ด์ ๋๋ฌด ์ข์ํ๊ธฐ ๋๋ฌธ์, ๋์ ๋ฐฑ์ผ์ ๊ธฐ๋ ํด์ ์๋ฌธ๋น์ ํฐ๋ฆฐ๋๋กฌ์ ์ ๋ฌผํด์ฃผ๋ ค๊ณ ํ๋ค.
์๋ฌธ๋น์ ์ํ์์ ์์ด ์ด๋ฆ์ผ๋ก ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค๋ ค๊ณ ํ๋๋ฐ, ์ํ์์ ์์ด ์ด๋ฆ์ ์ํ๋ฒณ ์์๋ฅผ ์ ์ ํ ๋ฐ๊ฟ์ ํฐ๋ฆฐ๋๋กฌ์ ๋ง๋ค๋ ค๊ณ ํ๋ค.
์๋ฌธ๋น์ ๋์ ์ํ์์ ์์ด ์ด๋ฆ์ ํฐ๋ฆฐ๋๋กฌ์ผ๋ก ๋ฐ๊พธ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ํ์์ ์์ด ์ด๋ฆ์ด ์๋ค. ์ํ๋ฒณ ๋๋ฌธ์๋ก๋ง ๋ ์ต๋ 50๊ธ์์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๋ฌธ์ ์ ์ ๋ต์ ์ถ๋ ฅํ๋ค. ๋ง์ฝ ๋ถ๊ฐ๋ฅํ ๋๋ "I'm Sorry Hansoo"๋ฅผ ์ถ๋ ฅํ๋ค. ์ ๋ต์ด ์ฌ๋ฌ ๊ฐ์ผ ๊ฒฝ์ฐ์๋ ์ฌ์ ์์ผ๋ก ์์๋ ๊ฒ์ ์ถ๋ ฅํ๋ค.
ํ์ด
๋ฌธ์์ด์ ๋ฐ์์ ํด๋น ๋ฌธ์์ด์ ๋ค์ด๊ฐ ์ํ๋ฒณ์ ๊ฐ์๋ฅผ ์ธ์ด์ alphabet[] ๋ฐฐ์ด์ ๋ฃ์ด์ค๋ค.
์ด์ ์ธ๊ฐ์ง ๊ฐ๋ฆผ๊ธธ
1. ๋ชจ๋ ์ํ๋ฒณ์ด ์ง์๊ฐ์
2. ํ๊ฐ์ ์ํ๋ฒณ์ด ํ์๊ฐ์, ๋๋จธ์ง๋ ์ง์๊ฐ์
3. ๋๊ฐ ์ด์์ ์ํ๋ฒณ์ด ํ์๊ฐ์
1๋ฒ์ ๊ทธ๋ฅ ๊ตฌํํ๋ฉด๋๋ค.
2๋ฒ์ ํ์๊ฐ์์ธ ์ํ๋ฒณ์ด ์ผํฐ์ ์ฐ์ด๋ฉด ๋๋ค
3๋ฒ์ ๊ตฌํ์ด ๋ถ๊ฐ๋ฅํ๋ค -> sorry ์ด์ฉ๊ตฌ
๊ตฌํ์ ๋ ๊ฐ๋จํ๋ค. ์ด์ฐจํผ ์ฌ์ ์์ด๋ฏ๋ก alphabet ๋ฐฐ์ด์ ๋๋ฉฐ ์์๊ฒ๋ถํฐ
๊ฐ์์ ์ ๋ฐ๋งํผ์ halfAns ๋ฌธ์์ด์ ์ถ๊ฐ
์ ๋ต์ธ ๋ฌธ์์ด์ {halfAns} + {์ผํฐ์ํ๋ฒณ (์๋ค๋ฉด)} + {halfAns ๊ฑฐ๊พธ๋ฆฌ๋ฒ์ }
// Authored by : seondal
// Co-authored by : -
// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string s) {
string ans;
// ๋ฌธ์์ด์ ๋ค์ด๊ฐ ์ํ๋ฒณ ๊ฐฏ์ ์ธ๊ธฐ
vector<int> alphabet(26, 0);
for(int i=0; i<s.size(); i++)
alphabet[s[i]-'A']++;
// ๊ฐ์๊ฐ ํ์์ธ ์ํ๋ฒณ ์นด์ดํธํ๊ธฐ
int odd = -1;
for(int i=0; i<26; i++) {
if(alphabet[i] % 2 == 1) { // ํ์ ๊ฐ์์ธ ์ํ๋ฒณ์ด ์๋ค๋ฉด
if(odd != -1) return "I'm Sorry Hansoo"; // ์ด๋ฏธ ํ์ ๊ฐ์์ธ ์ํ๋ฒณ์ด ์์ ๊ฒฝ์ฐ
odd = i; // ํ์ ๊ฐ์์ธ ์ํ๋ฒณ ๋ณด๊ด
}
}
// ๋ต ๋ฌธ์์ด ๋ฐ์ชฝ ๊ตฌํ๊ธฐ
string halfAns;
for(int i=0; i<26; i++) {
for(int j=0; j<alphabet[i]/2; j++) {
halfAns.push_back(i+'A');
}
}
// ๊ตฌํ ๋ฐ์ชฝ๋ฌธ์์ด ์ถ๊ฐํ๊ณ , ์ผํฐ์ ์ํ๋ฒณ(์๋ค๋ฉด) ๋ฃ๊ณ , ๋ฐ์ชฝ๋ฌธ์์ด ๋ค์ง์ด์ ์ถ๊ฐ
ans += halfAns;
if(odd != -1) ans.push_back(odd+'A');
reverse(halfAns.begin(), halfAns.end());
ans += halfAns;
return ans;
}
int main() {
string input;
cin >> input;
string ans = solution(input);
cout << ans;
return 0;
}
/*
*/
'๐ฒ Altu-Bitu > ๊ตฌํ&์๋ฎฌ๋ ์ด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ S4][C++] ๋ฐฑ์ค 1244๋ฒ: ์ค์์น ์ผ๊ณ ๋๊ธฐ (0) | 2022.10.17 |
---|---|
[BOJ S3][C++] ๋ฐฑ์ค 2503๋ฒ: ์ซ์ ์ผ๊ตฌ (2%, 4%) (0) | 2022.10.06 |
[BOJ G5][C++] ๋ฐฑ์ค 20055๋ฒ: ์ปจ๋ฒ ์ด์ด ๋ฒจํธ ์์ ๋ก๋ด (0) | 2022.10.03 |
[BOJ S1][C++] ๋ฐฑ์ค 20923๋ฒ: ์ซ์ ํ ๋ฆฌ๊ฐ๋ฆฌ ๊ฒ์ (0) | 2022.09.30 |
[BOJ][C++] ๋ฐฑ์ค 14891๋ฒ: ํฑ๋๋ฐํด (0) | 2022.09.20 |