티스토리 뷰

https://www.acmicpc.net/problem/1213

 

1213번: 팰린드롬 만들기

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

www.acmicpc.net

const fs = require('fs');
const input = fs.readFileSync("./dev/stdin").toString().trim();


let count = [];

for (let i = 0; i < input.length; i++) {
  const x = input.charCodeAt(i) - 65;
  if (count[x]) {
    count[x]++;
  } else {
    count[x] = 1
  }
}

const odd = count.filter(v => v % 2 != 0);
if (odd.length > 1) {
  console.log("I'm Sorry Hansoo");
} else {
  let head = '';
  let body = '';
  let tail = '';

  count.forEach((v, i) => {
    if (v % 2 != 0) {
      body += String.fromCharCode(i + 65);
      v--;
    }
    for (let k = 0; k < v / 2; k++) {
      head += String.fromCharCode(i + 65);
      tail = String.fromCharCode(i + 65) + tail
    }
  })
  console.log(head + body + tail)

}
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함