BOJ[1259] - 팰린드롬수 by JavaScript
팰린드롬수
문제
언어
- JavaScript
순서도
- 입력된 수들이 팰린드롬수인지 판별하고 출력 형식에 맞게 문자열 구성
문제 풀이 step 1
- 어떤 단어를 뒤에서부터 읽어도 똑같다면 그 단어를 팰린드롬이라고 한다고 합니다.
- ex. ‘radar’, ‘sees’
- 수도 마찬가지로 팰린드롬수는 뒤에서부터 읽어도 같은 수를 의미합니다.
- 입력된 수에 대해서 팰린드롬수인지 판별해야 하는데요. 어떻게 해야할까요?
- 뒤에서부터 읽어도 똑같다는 얘기는 가운데를 접었을 때 좌우가 같다는 얘기랑 같은 얘기입니다.
- 그래서 가운데를 기준으로 좌우가 같은지 판별하는 방식을 통해서 팬린드롬수인지 판별할 수 있습니다.
- 팰린드롬수인지 판별하고 출력 형식에 맞게 문자열을 구성해서 출력해주면 정답이 됩니다.
- 추가 설명은 주석에 작성하겠습니다.
후기
- 나중에 팰린드롬 관련해서 포스트할 일이 있을거 같아서 미리 포스트하게 되었습니다.
소스 코드
const input = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split("\n");
const checkPalindrome = (num) => {
const len = num.length;
// 가운데를 기준으로 좌와 우가 같은지 비교하며 팰린드롬인지 검사합니다.
for (let i = 0; i < parseInt(len / 2) + 1; i++) {
if (num[i] !== num[len - i - 1]) return false;
}
return true;
};
const solution = (input) => {
let index = 0;
let res = "";
while (true) {
const num = input[index++];
if (num === "0") break;
// 팰린드롬수라면 yes
if (checkPalindrome(num) === true) res += "yes\n";
// 팰린드롬수가 아니라면 no
else res += "no\n";
}
return res;
};
console.log(solution(input));