
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./예제.txt";
let input = fs.readFileSync(filePath).toString().trim();
// const fs = require('fs');
// let input = fs.readFileSync('/dev/stdin').toString().trim();
let Alphabets = [];
input = input.split('')
for (let i = 0; i < input.length; i++) {
if (Alphabets.find(el => el.name === input[i])) {
let indexIs = Alphabets.findIndex(el => el.name === `${input[i]}`)
let nextCountIs = Alphabets[indexIs].count + 1
Alphabets[indexIs].count = nextCountIs
} else {
let newSource = {
name: `${input[i]}`,
count: 1
}
Alphabets.push(newSource)
}
}
let answer=""
if (input.length % 2 === 0) {
let isPossible = Alphabets.map((el) => el.count % 2 !== 0)
if (isPossible.indexOf(true)!==-1) {
console.log("I'm Sorry Hansoo")
}else{
let AlphabetArray=[];
Alphabets.map((el)=>AlphabetArray.push(el.name))
AlphabetArray.sort()
for (let i=0;i<AlphabetArray.length;i++){
let indexIs = Alphabets.findIndex(el => el.name === `${AlphabetArray[i]}`)
for (let j=0;j<Math.floor(Alphabets[indexIs].count/2);j++){
answer+=AlphabetArray[i]
}
}
answer+=answer.split('').reverse().join('')
}
} else {
let oddNum=0;
Alphabets.map((el)=>{(el.count%2!==0)?oddNum++:0})
if (oddNum>1){
console.log("I'm Sorry Hansoo")
}else{
let AlphabetArray=[];
Alphabets.map((el)=>AlphabetArray.push(el.name))
AlphabetArray.sort()
for (let i=0;i<AlphabetArray.length;i++){
let indexIs = Alphabets.findIndex(el => el.name === `${AlphabetArray[i]}`)
for (let j=0;j<Math.floor(Alphabets[indexIs].count/2);j++){
answer+=AlphabetArray[i]
}
}
answer+=answer.split('').reverse().join('')
let middle;
Alphabets.map((el)=>(el.count%2!==0)?middle=el.name:0)
answer=answer.slice(0,Math.floor(input.length/2))+middle+answer.slice(Math.floor(input.length/2),)
}
}
console.log(answer)
${AlphabetArray[i]})이번 건 너무 더럽게 푼 것 같다.