[English]
Hansoo and Moonbin are in love.
Hansoo loves Palindrome Strings more than anyone else in this world, so Moonbin decided to give a Palindrome to Hansoo for their 100th day as a couple.
Moonbin tries to make a palindrome with Hansoo's English name, by mixing up Hansoo's English Alphabets accordingly.
Help Moonbin making Hansoo's English name into a palindrome.
[Input]
On the first line, there is Hansoo's English Name. It is made out of Capital letters of English Alphabet. (Max 50 letters)
[Output]
On the first line, print the answer of the question. If not possible, print "I'm Sorry Hansoo." If there are more than one answer, print the answer that comes out first in a alphabetical order.
[알고리즘]
주어진 문자열에 각 알파벳이 몇 개 존재하는지 확인한다.
팰린드롬 가능한 경우:
- 모든 알파벳이 각 짝수번 나타나는 경우:
- ABABAABB -> AABBBBAA
- 한 알파벳은 홀수 번 나타나고, 이를 제외한 다른 알파벳은 각 짝수번 나타나는 경우:
- ABCACCB -> ABCCCBA (홀수번 나타나는 알파벳을 가운데에 두기
정답
#include <iostream>
using namespace std;
int main(){
string s;
cin>>s;
int data[26]={0,};
for (int i=0; i<s.size();i++){
data[s[i]-'A']+=1;
}
int cnt=0;
int odd=0;
for (int i=0;i<26;i++){
if (data[i]%2){
cnt++;
odd=i;
}
}
if (cnt>1){
cout<<"I'm Sorry Hansoo";
return 0;
}
string answer;
for (int i=0;i<26;i++){
for (int j=0;j<data[i]/2;j++){
answer+='A'+i;
}
}
if (cnt)
answer+='A'+odd;
for (int i=25;i>=0;i--){
for (int j=0;j<data[i]/2;j++)
answer+='A'+i;
}
cout<<answer;
return 0;
}
'Computer Science > Algorithm' 카테고리의 다른 글
[C++] BOJ 2343 기타 레슨 (1) | 2024.09.29 |
---|---|
[Java] BOJ 2075: N번째 큰 수 (1) | 2024.09.28 |
[Python 3] BOJ 1366: 기타 코드 (0) | 2024.06.28 |
[Python 3] BOJ 31864 눈송이 탕후루 만들기 (1) | 2024.06.05 |
[Python 3] BOJ 20955 민서의 응급 수술 (0) | 2024.06.03 |