728x90
[문제]
[코드]
const stdin = require("fs")
.readFileSync(process.platform === "linux" ? "/dev/stdin" : "input.txt")
.toString()
.trim();
let N = Number(stdin);
const checkPrimeNum = (n) => {
if (n === 1) return false;
else if (n === 2) return true;
else {
for (let i = 2; i <= Math.floor(Math.sqrt(n)); i++) {
if (n % i === 0) return false;
}
return true;
}
};
while (true) {
let str = String(N);
let reversedStr = [...str].reverse().join("");
if (str === reversedStr && checkPrimeNum(N) === true) {
console.log(N);
break;
}
N++;
}
checkPrimeNum 함수는 해당 수가 소수인지 아닌지를 판별한다.
무한 루프 안에서는 주어진 숫자 N을 문자열로 변환하여 str로 두고,
이 str을 쪼개서 반전시키고 다시 문자열로 합치는 과정이 reversedStr이다.
(예: str = '102' -> [... str]은 ['1', '0', '2']이 되고, reverse()를 하면 ['2', '0', '1']가 된다. 마지막으로 join("")을 하면 '201'이 됨)
두 개의 문자열이 같은지 비교하고, checkPrimeNum을 통해 해당 숫자가 소수라면 N을 출력하고 종료한다.
최대한 쉽게 풀어서 효율이 그다지 좋지 않은 거 같다.
코드는 다른 코드에 비해 짧지만, 시간이 552ms나 나왔다..
320x100
'알고리즘 > 백준' 카테고리의 다른 글
[노드JS/알고리즘] 백준 - 3568번 iSharp (0) | 2022.05.30 |
---|---|
[노드JS/알고리즘] 백준 - 16953번 A -> B (DFS 풀이) (0) | 2022.03.13 |
[노드JS/알고리즘] 백준 - 1074번 Z (0) | 2022.02.18 |
[노드JS/알고리즘] 백준 - 11256번 사탕 (0) | 2022.01.24 |
[노드JS/알고리즘] 백준 - 2579번 계단오르기 (0) | 2022.01.16 |