on
[백준][Java] 1213번 팰린드롬 만들기(문자열, 구현)
[백준][Java] 1213번 팰린드롬 만들기(문자열, 구현)
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.HashMap;
import java.util.Map;
public class Main {
private static BufferedReader br = new BufferedReader( new InputStreamReader( System . in ));
private static BufferedWriter bw = new BufferedWriter( new OutputStreamWriter( System . out ));
static char [] alp = { 'A' , 'B' , 'C' , 'D' , 'E' , 'F' , 'G' , 'H' , 'I' , 'J'
, 'K' , 'L' , 'M' , 'N' , 'O' , 'P' , 'Q' , 'R' , 'S' , 'T' , 'U' , 'V' , 'W'
, 'X' , 'Y' , 'Z' };
public static void main( String [] args) throws IOException{
char [] input = br.readLine().toCharArray();
Map < Character, Integer > hm = new HashMap < > ();
for ( char c : input) {
hm.put(c, hm.getOrDefault(c, 0 ) + 1 );
}
StringBuilder sb = new StringBuilder();
char cent = ' ' ;
for ( char c : alp) {
if (hm.getOrDefault(c, 0 )% 2 = = 1 ) {
if (cent ! = ' ' ) {
System . out . println ( "I'm Sorry Hansoo" );
return ;
}
else {
cent = c;
}
}
for ( int j = 0 ; j < hm.getOrDefault(c, 0 ) / 2 ; j + + ) {
sb.append(c);
}
}
if (cent ! = ' ' )
sb.append(cent);
for ( int i = alp. length - 1 ; i > = 0 ; i - - ) {
for ( int j = 0 ; j < hm.getOrDefault(alp[i], 0 ) / 2 ; j + + ) {
sb.append(alp[i]);
}
}
bw.write(sb. toString ());
bw.flush();
bw.close();
}
// private static int stoi(String input) {
// return Integer.parseInt(input);
// }
}
from http://aig2029.tistory.com/301 by ccl(A) rewrite - 2021-09-24 06:27:52