본문 바로가기
알고리즘 Node.js

백준 10988문제. 팰린드롬인지 확인하기

by 반갑조? 2025. 3. 25.

문제

문제: 알파벳 소문자로만 이루어진 단어가 주어진다. 이때, 이 단어가 팰린드롬인지 아닌지 확인하는 프로그램을 작성하시오. 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 

level, noon은 팰린드롬이고, baekjoon, online, judge는 팰린드롬이 아니다.

입력: 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다.

출력: 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다.

예제 입력: level 또는 baekjoon

예제 출력: 1       또는 0

 

풀이

const fs = require('fs');
const input = fs.readFileSync(0, 'utf-8').trim();

const reversed = input.split('').reverse().join('');

if (input === reversed) {
  console.log(1);
} else {
  console.log(0);
}

 

풀이 해석

1. 문자열을 뒤집기는 'split('').reverse().join('')'을 사용하면 된다.

  - split('') 문자열을 배열로 쪼갠다.

  - reverse() 배열의 값을 뒤집는다.

  - join('') 다시 문자열로 만든다.

2. if문으로 입력값과 뒤집은 문자열인 reversed가 같다면 1을 출력, 아니면 0을 출력한다.

 

더 알아보기

1. if문은 삼항연산자로 대체할 수 있다.

console.log(input === reversed ? 1 : 0);