Algorithm/Javascript로 코테 준비하기
[JS로 코테 준비하기] 7. 프로그래머스 - 약수 구하기 (feat. 1부터 n까지 배열)
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/120897
1부터 n까지 배열 만들기
숫자 n이 주어졌을 때, 1부터 n까지 탐색이 필요한 경우 for문을 대신하는 방법들
for(let i = 0; i <= n; i++){ //whatever }
1. 0부터 n-1 [0, 1, 2, ... , n-1]
Array.from(Array(n).keys());
[...Array(n).keys()];
2. 1부터 n [1, 2, ... , n-1, n]
Array.from(Array(n), (_, i) => i + 1));
Array.from({length: n}, (_, i) => i + 1);
[...Array(n).keys()].map(i => i + 1);
[...Array(n+1).keys()].slice(1);
참고) i부터 j [i, i+1, ..., j-1, j]
[...Array(j + 1).keys()].slice(i);
3. 비교
무엇을 사용할까?
Array.from() vs. spread operator
Array.from()
은 shallow copy(얕은 복사)로, 인자로 들어온 값의 메모리 주소를 가리킨다.spread operator
는 deep copy(깊은 복사)로, 값 자체를 복사해 별도의 메모리 주소를 가진다.
사실 배열 생성을 위한 단계라 위 차이는 영향을 미치지 않으므로, 간단한 [...Array(n).keys()]
과 [...Array(n+1).keys()].slice(1)
를 애용할 예정이다.
Reference
반응형
'Algorithm > Javascript로 코테 준비하기' 카테고리의 다른 글
[JS로 코테 준비하기] 9. 프로그래머스 - 2차원 바꾸기 (feat. splice) (0) | 2023.01.01 |
---|---|
[JS로 코테 준비하기] 8. 프로그래머스 - 배열 회전시키기 (feat. shift, unshift) (0) | 2022.12.24 |
[JS로 코테 준비하기] 6. 프로그래머스 - 순서쌍의 개수 (feat. 시간복잡도 제한) (0) | 2022.11.27 |
[JS로 코테 준비하기] 5. 프로그래머스 - 문자열 뒤집기(feat. 문자열 <-> 배열) (0) | 2022.10.26 |
[JS로 코테 준비하기] 4. 프로그래머스 - 제곱수 판별하기(feat. 정수 판단하기) (0) | 2022.10.23 |