js/[문제풀이] programmers

[js] 약수 구하기_Divisor

우금붕 2023. 2. 15. 17:01
더보기

[사담]

뜬끔없이 문제를 풀다가.. 제 실력에 한탄하면서 기초부터 탄탄히 쌓고자 코딩테스트 입문 페이지에 들어갔는데요.

네 이거 보고 머쓱이 스탬프 받고 싶어서 10일간 하루 5문제 뿌시기 시작했습니다.

 

[문제 설명]

정수 n이 매개변수로 주어질 때, n의 약수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.


[제한사항]

  • 1 ≤ n ≤ 10,000

[입출력 예]

 n                                 result

24 [1, 2, 3, 4, 6, 8, 12, 24]
29 [1, 29]

[입출력 예 설명]

입출력 예 #1

  • 24의 약수를 오름차순으로 담은 배열 [1, 2, 3, 4, 6, 8, 12, 24]를 return합니다.

입출력 예 #2

  • 29의 약수를 오름차순으로 담은 배열 [1, 29]를 return합니다.

 

 

 

 

[문제 풀이]

function solution(n) {
    let answer = [];
    for (var i=1; i<=n; i++){n%i === 0 ? answer.push(i) : 0;}
    return answer;
}

 

 

 

[해설]

얼마 전에 이미 약수를 구하는 코드를 한 번 작성한 적이 있어서 금방 구현했네요.

1부터 n이 0으로 나누어떨어지는 숫자만 담안 배열을 return했습니다.

 

 

 

[느낀점]

문제 풀이 이후 다른 사람 풀이도 살펴보았는데, 코드는 간결하더라도 제 코드보다 시간 효율이 좋지 않아 첨부하지 않았습니다.

무작정 코드를 줄인다기보단 간결하고 가독성 좋고 효율 좋은 코드를 구현할 수 있도록 다양한 방법으로 도전해보겠습니다.

 

 

 

[github] - Divisor.js

https://github.com/yh725k/javascript.git

 

GitHub - yh725k/javascript

Contribute to yh725k/javascript development by creating an account on GitHub.

github.com