Coding Test/JavaScript
[Javascript] (백준 1259) 팰린드롬 수
Chaedie
2022. 6. 27. 15:00
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()를 익혀야겠습니다.