fork download
  1. import java.util.*;
  2.  
  3. public class Main {
  4.  
  5. public static void main(String[] args) {
  6.  
  7. Scanner sc = new Scanner(System.in);
  8. String st = sc.nextLine();
  9. String t = st;
  10.  
  11. HashMap<String, Integer> map = new HashMap<>();
  12. StringBuilder sb = new StringBuilder();
  13. for(int i=0;i<st.length();i++) {
  14. String s = String.valueOf(st.charAt(i));
  15. if ( map.containsKey(s)) {
  16. map.put(s,map.get(s)+1);
  17. } else
  18. {
  19. map.put(s, 1);
  20. }
  21. }
  22. st = "";
  23. int cnt = 0;
  24. for (Map.Entry<String, Integer> entry : map.entrySet()) { // HashMap Values와 Key를 순차적으로 참조 entrySet()
  25. String Key = entry.getKey();
  26. int Value = entry.getValue();
  27.  
  28. if(Value % 2 ==1) {
  29. st = st.concat(Key);
  30. for(int i=0;i< Value/2;i++) {
  31. sb.append(Key);}
  32. cnt +=1 ;
  33. }
  34. else {
  35. for(int i=0;i< Value/2;i++) {
  36. sb.append(Key);}}
  37. }
  38.  
  39.  
  40. String st2 = sb.toString();
  41.  
  42. char[] ca = st2.toCharArray();
  43. Arrays.sort(ca);
  44.  
  45. StringBuilder sb2 = new StringBuilder();
  46. sb2.append(ca);
  47.  
  48. //sb_Right = sb.reverse(); 이렇게 쓰면 sb도 뒤집어져버림
  49. if( map.size() == 1) {
  50. System.out.println(t);
  51. }
  52. else {
  53. if (cnt > 1) {
  54. System.out.println("I'm Sorry Hansoo");
  55. }else {
  56. if(cnt == 1)
  57. System.out.println(sb2 + st +sb2.reverse());
  58. else
  59. System.out.println(sb2.toString() +sb2.reverse().toString());
  60. }
  61. }
  62.  
  63. }
  64. }
  65.  
Success #stdin #stdout 0.14s 61088KB
stdin
WWWFF
stdout
WFWWF