블로그 언저리인 무언가
[백준/BOJ] 1213 팰린드롬 만들기 본문
728x90
문제 : 1213 팰린드롬 만들기
1213번: 팰린드롬 만들기
첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.
www.acmicpc.net
문자열을 입력받아 순서를 바꾸어 팰린드롬으로 만들어 출력하는 문제이다.
어떤 문자의 개수가 홀수인 경우가 2개 이상이 되면 불가능한 경우이고,
가능할 경우에는 사전 순으로 가장 빠른 것을 출력해야 하기 때문에
배열 앞에서부터 순차적으로 출력하고 홀수개인 것을 출력한 뒤,
다시 뒤에서부터 순차적으로 출력하면 된다.
Code
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
ll arr[30]={0}, chk=0;
string S;
cin >> S;
for (int i=0;i<S.size();i++){
arr[S[i]-'A']++;
}
for (int i=0;i<26;i++){
if (arr[i]%2)
chk++;
}
if (chk>1){
cout << "I'm Sorry Hansoo";
}
else{
for (int i=0;i<26;i++){
for (int j=0;j<arr[i]/2;j++)
cout << (char)(i+'A');
}
for (int i=0;i<26;i++){
if (arr[i]%2)
cout << (char)(i+'A');
}
for (int i=25;i>=0;i--){
for (int j=0;j<arr[i]/2;j++)
cout << (char)(i+'A');
}
}
return 0;
}
728x90
'Programming > BOJ' 카테고리의 다른 글
[백준/BOJ] 5525 IOIOI (0) | 2020.09.19 |
---|---|
[백준/BOJ] 1780 종이의 개수 (0) | 2020.09.19 |
[백준/BOJ] 1531 투명 (0) | 2020.09.18 |
[백준/BOJ] 9715 면적 구하기 (0) | 2020.09.18 |
[백준/BOJ] 15429 Odd Gnome (0) | 2020.09.18 |
Comments