본문 바로가기
Coding Test/JavaScript

[Javascript] (백준 1259) 팰린드롬 수

by Chaedie 2022. 6. 27.
728x90

[Javascript] (백준 1259) 팰린드롬 수

💡 구글에 Javascript 풀이가 많이 없거나, 배운 점이 있으면 포스팅합니다.

내 풀이

//* 인풋 (디폴트)
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = require('fs').readFileSync(filePath).toString().split('\n');

//* 인풋 (커스텀)
inputNums = input.map((num) => +num);
//* 함수 콜 (고정)
let answer = solution(inputNums);
answer = typeof answer === 'number' ? answer : answer.trim();
console.log(answer);

//* 로직함수
function solution(inputNums) {
  const result = [];

  for (let i = 0; i < inputNums.length; i++) {
    if (inputNums[i] === 0) {
      break;
    }
    isPalindrome(inputNums[i]) ? result.push('yes') : result.push('no');
  }

  return result.join('\n');
}

function isPalindrome(num) {
  let str = num + '';
  let isTrue = true;

  for (let i = 0; i < Math.floor(str.length / 2); i++) {
    if (str[i] !== str[str.length - 1 - i]) {
      isTrue = false;
    }
  }

  return isTrue;
}

다른 사람 풀이

const fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

input.forEach(el => {
    if (el != 0) {
        let copy = el.split('').reverse().join('');
        if (el == copy) {
            console.log('yes');
        } else {
            console.log('no');
        }
    }
})

배운 것 적용해서 다시 풀이

//* 인풋 (디폴트)
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = require('fs').readFileSync(filePath).toString().split('\n');

//* 인풋 (커스텀)
inputNums = input.map((num) => +num);
//* 함수 콜 (고정)
let answer = solution(inputNums);
answer = typeof answer === 'number' ? answer : answer.trim();
console.log(answer);

//* 로직함수
function solution(inputNums) {
  const result = [];

  let i = 0;
  while (inputNums[i] !== 0) {
    isPalindrome(inputNums[i]) ? result.push('yes') : result.push('no');
    i++;
  }

  return result.join('\n');
}

function isPalindrome(num) {
  let str = num + '';
  return str === str.split('').reverse().join('');
}

배운 점, 느낀 점

foreach()를 익혀야겠습니다.

댓글