문제설명
정수 start와 end가 주어질 때, start부터 end까지의 숫자를 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
✅ 내 코드
function solution(start, end) {
let list =[]
let num;
for (num=start; num<=end; num++) {
list.push(num)
}
return list;
}
💻 내가 사용한 방법
for문: 어떤 특정한 조건이 거짓으로 판별될 때까지 반복
for ([초기문]; [조건문]; [증감문])
문장
1. 초기문: 보통 1로 설정. 복잡한구문 / 변수도 가능
2. 조건문: 조건문이 참일때만 for문이 반복. 조건문이 거짓이면 for문 종결
3. 증감문: 갱신구문.
증감문이 실행된뒤, 다시 조건문으로 돌아간다.
💻 다른사람 코드중에 배울 것
function solution(start, end) {
return Array(end-start+1).fill(start).map((x,idx) => x+idx);
}
나는 기본적인 for문을 이용해서 문제를 풀었는데,
이렇게 여러 매서드를 이용해서 풀어도 좋을것같아서 학습하였다.
Array생성자를 길이를 지정한 배열을 생성하고, 그 배열의 값들을 모두 start값으로 채운 다음
map으로 배열을 돌면서 인덱스값만큼 더해주는 코드이다.
인덱스는 0부터 시작되기때문에 start부터 end까지 원하는 값을 얻을 수 있다.
💻 학습한 것
1. Array() 생성자 함수: 새로운 Array객체를 생성
Array(arrayLength)
Array 생성자 함수의 인자가 하나일때 ➡️ 인자는 Array의 길이
2. fill(): 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채운다
Array.fill()
fill()의 인자가 하나일때 ➡️ 모두 같은 값으로 채운다
3. map(): 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환
인자가 2개일때는 첫번째는 현재값, 두번째는 index이다.
arr.map(callback(currentValue[, index[, array]])[, thisArg])
🙋♀️ 내 생각
for문만 사용해도 풀수있는 문제이지만, 다른 사람의 코드를 보면서 저렇게 여러 메서드를 이용해서 풀수도 있구나를 알게되었다.
Array()의 인자로 하나의 값만을 넣으면 그건 배열의 길이라는 것은 이번에 처음 알았다.
fill() 원래 알고 있었지만 이 문제를 풀면서는 생각이 나지 않았는데, 알아두면 다음에 또 잘쓸거같은 메서드이다.
단순하게도 풀수도 있지만 이렇게 여러가지 방법으로도 풀수있다는게 재밌는것같다.
'JavaScript > 알고리즘' 카테고리의 다른 글
프로그래머스 문자열의 뒤의 n글자 JS ( push(),for문,join() / slice() ) (0) | 2023.05.28 |
---|---|
프로그래머스 n보다 커질 때까지 더하기 JS ( for문 / while문 ) (0) | 2023.05.28 |
프로그래머스 조건에 맞게 수열 변환하기 1 JS ( map() ) (0) | 2023.05.27 |
프로그래머스 정수찾기 JS ( includes() ) (0) | 2023.05.27 |
프로그래머스 첫 번째로 나오는 음수 JS ( findIndex() ) (0) | 2023.05.26 |