문제 풀이 및 개발 공간

[백준] 1213번 팰린드롬 만들기 (silver 3 본문

백준공부/java

[백준] 1213번 팰린드롬 만들기 (silver 3

gomduri43 2024. 9. 3. 15:05

import java.io.*;
import java.util.*;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));

        String a=br.readLine();
        String mid="";
        String left="";
        String right="";

        //각 알파벳 갯수 세기
        int[] word=new int[26];
        for(int i=0; i<a.length(); i++){
            word[a.charAt(i)-'A']++;
        }

        //홀수인 알파벳 갯수세기, 만약 홀수인 알파벳 수가 1,0이 아니면 만들기 불가.
        //만들 수 있는 홀수갯수일 경우를 대비해, mid에 홀수인 알파벳 넣기.
        int odd=0;
        for(int i=0; i<26; i++){
            if(word[i]%2==1){
                odd++;
                mid=String.valueOf((char)(i+'A'));
            }
        }

        if(odd>1){
            System.out.println("I'm Sorry Hansoo");
        }
        else{
            for(int i=0; i<26; i++){
                if(word[i]==0){
                    continue;
                }

                for(int j=0; j<word[i]/2; j++){
                    char temp=(char)(i+'A');
                    left= left.concat(String.valueOf(temp));
                    right=String.valueOf(temp).concat(right);
                }
            }
            System.out.println(left+mid+right);
        }
    }
}