팰린드롬수

문제

언어

  • 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));