Jun's Development Journey

[BOJ] 1213번 팰린드롬 만들기 본문

BOJ/String

[BOJ] 1213번 팰린드롬 만들기

J_Jayce 2021. 3. 22. 13:04

문제

www.acmicpc.net/problem/1213

 

1213번: 팰린드롬 만들기

첫째 줄에 문제의 정답을 출력한다. 만약 불가능할 때는 "I'm Sorry Hansoo"를 출력한다. 정답이 여러 개일 경우에는 사전순으로 앞서는 것을 출력한다.

www.acmicpc.net

풀이

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;


public class Main {
	
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		//선언 및 입력
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		String name = br.readLine();
		String answer = "";
		int[] cnt = new int[26];
		int odd_cnt=0;
		int midIdx = -1;
		for(int i=0;i<name.length();i++) {
			cnt[name.charAt(i)-'A']++;
		}
		for(int i=0;i<cnt.length;i++) {
			if(cnt[i]%2!=0) {
				midIdx = i;
				odd_cnt++;
			}
		}
		
		//계산
		if((name.length()%2!=0 && odd_cnt>1)||(name.length()%2==0 && odd_cnt>0))
			System.out.println("I'm Sorry Hansoo");
		else {
			for(int i=0;i<26;i++) {
				for(int j=0;j<cnt[i]/2;j++)
					answer+=(char)(i+'A');
			}
			String rev = (new StringBuffer(answer)).reverse().toString();
			if(odd_cnt==1)
				answer+=(char)(midIdx+'A');
			answer+=rev;
			System.out.println(answer);
		}
		
	}

}


'BOJ > String' 카테고리의 다른 글

[BOJ] 17413 단어 뒤집기 2  (0) 2021.04.23
[BOJ]9996번 한국이 그리울 땐 서버에 접속하지  (0) 2021.04.08
[BOJ] 9012 괄호  (0) 2021.02.16
[BOJ] 8958 OX 퀴즈  (0) 2021.02.16
[BOJ] 4949번 균형잡힌 세상  (0) 2019.08.26