프로그래머스 문제 링크
문제 풀이 생각 회로
-
start 부터 end 까지 1씩 감소하는 배열을 리턴하는 문제
-
두가지 생각이 들 수 있다.
- 순회를 하며 start 부터 end까지 하나씩 줄여가며 배열을 push한다.
- Array를 만들고 start로 채워 넣은 다음 map 을 돌며 하나씩 인덱스 만큼 차감해 준다.
-
필자는 두번째 방법을 활용해 해결하였다.
고민했던 내용
- 위의 1번과 2번중 시간복잡도를 생각해 보았다.
- 1번의 경우 반복문을 한번만 돌면되는 것 같아 시간 복잡도가 적어보였다.
- 2번의 경우 배열을 만들고 start_num 으로 채워넣는 것과 그 배열을 다시 순회하며 하나씩 차감해주는 것 때문에 2번이 더 많이 걸릴 것으로 예상됨.
- 내부적으로 fill이 어떻게 동작하는 지 검색해 보아야 겠다.
- 참고한 블로그
- 내부적으로 보았을 때 주소값을 복사한다고 하는 것으로 미루어 보았을 때 순회하며 주소값을 이어주는 것으로 생각됨.
제출 코드
function solution(start, end_num) {
return Array(start - end_num + 1).fill(start).map((v, i) => v - i)
}