백준 알고리즘을 시작했다. 백준 알고리즘에는 Javascript
가 따로 없기 때문에 nodeJs
를 선택하여 문제를 풀어야 한다.
또한, 백준에서는 직접 input을 넣어주어야 한다. input 조건이 다양해서 당황했지만, 아래 사이트를 참고하여 해결할 수 있었다. 나는 ReadLine
모듈을 사용하였다.
https://yeoncoding.tistory.com/13
오늘은 약수구하기 시작하였다.
두 개의 자연수 N과 K가 주어졌을 때, N의 약수들 중 K번째로 작은 수를 출력하는 프로그램을 작성하시오.
( N은 1 이상 10,000 이하이다. K는 1 이상 N 이하이다. )
출력 예시와 출력 조건은 다음과 같다.
첫째 줄에 N의 약수들 중 K번째로 작은 수를 출력한다.
만일 N의 약수의 개수가 K개보다 적어서 K번째 약수가 존재하지 않을 경우에는 0을 출력하시오.
const BaekJoon2501 = (num, k) => {
let result = [];
for (let i = 1; i <= num; i++) {
if (num % i === 0) result.push(i);
}
return result.length + 1 > k ? result[k - 1] : "0";
};
// input 설정
const readline = require("readline");
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout,
});
let input = [];
rl.on("line", function (line) {
input = line.split(" ").map((el) => parseInt(el));
}).on("close", function () {
console.log(BaekJoon2501(input[0], input[1]));
process.exit();
});