[백준] 알고리즘 약수구하기 2501

송우든·2021년 11월 26일
0

Algorithm

목록 보기
1/12
post-thumbnail

백준 알고리즘을 시작했다. 백준 알고리즘에는 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();
});
profile
개발 기록💻

0개의 댓글

관련 채용 정보