[백준][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