-
[Programmers] JavaScript 알고리즘 | Lv.0 약수 구하기► JS Algorithm/Programmers 2024. 1. 16. 21:03반응형
🔒 문제 설명
정수 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합니다.
🔐 solution of mine
Array.push()
for문
new Set() 중복을 제거하는 방법
Array.sort()
const solution = (n, answer = []) => { answer.push(1); for (let i = 1; i < n / 2; i++) { if (n % i === 0) { answer.push(i); answer.push(n / i); } } answer = new Set(answer); return console.log([...answer].sort((a, b) => a - b)); }; solution(24); // expected output: [1, 2, 3, 4, 6, 8, 12, 24] solution(29); // expected output: [1, 29]
'채점'하니, '테스트 2'에서만 계속 에러나서.. '질문하기'의 도움을 받았다.
매개변수 n이 1일때의 케이스는 에러가 발생하는걸 알게되었다
후.... 어케 이런 케이스도 알아내시는지들
대다나다.... 😆
🔐 solution of others
Array.fill()
Array.map()
Array.filter()
const solution = (n) => console.log( Array(n) .fill(0) .map((v, i) => v + i + 1) .filter((v) => n % v === 0) ); solution(24); // expected output: [1, 2, 3, 4, 6, 8, 12, 24] solution(29); // expected output: [1, 29]
🔐 solution of others
for문if문Array.push()const solution = (n, answer = []) => { for (let i = 1; i <= n; i++) { if (n % i === 0) answer.push(i); } console.log(answer); }; solution(24); // expected output: [1, 2, 3, 4, 6, 8, 12, 24] solution(29); // expected output: [1, 29]
🔐 solution of others
new Set
set.add()
for문
Math.sqrt()
Array.sort()
const solution = (n) => { let set = new Set(); for (let i = 1; i <= Math.sqrt(n); i++) { if (n % i === 0) { set.add(i); set.add(n / i); } } return console.log([...set].sort((a, b) => a - b)); }; solution(24); // expected output: [1, 2, 3, 4, 6, 8, 12, 24] solution(29); // expected output: [1, 29]
🔐 solution of others
Array.from({length:})
Array.filter()
const solution = (n) => console.log( Array.from({ length: n }, (_, i) => i + 1).filter((v) => n % v === 0) ); solution(24); // expected output: [1, 2, 3, 4, 6, 8, 12, 24] solution(29); // expected output: [1, 29]
반응형'► JS Algorithm > Programmers' 카테고리의 다른 글
[Programmers] JavaScript 알고리즘 | Lv.0 숨어있는 숫자의 덧셈 (2) (0) 2024.01.17 [Programmers] JavaScript 알고리즘 | Lv.0 문자 리스트를 문자열로 변환하기 (0) 2024.01.16 [Programmers] JavaScript 알고리즘 | Lv.0 배열 회전시키기 (0) 2024.01.16 [Programmers] JavaScript 알고리즘 | Lv.0 배열 만들기 3 (0) 2024.01.16 [Programmers] JavaScript 알고리즘 | Lv.0 문자열 잘라서 정렬하기 (0) 2024.01.16