알고리즘 문제풀기 (JS입문) - x만큼 가격이 있는

2022. 12. 29. 12:08알고리즘 공부

728x90
SMALL

문제

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

 

제한 조건

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.

입출력 예

x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4, -8]

function solution(x, n) {
    var answer = [];
    return answer

}

 

 

내가 푼 답

function solution(x, n) {
    var answer = [];

    for (i=0; i<n; i++){
    
        answer.push(x + (x * i)) 
       
        
    }
    return answer

}

마지막에 배열로 집어넣는 방법을 몰라서 한참 해멨는데, 

처음에는 answer += x + (x * i)로 코드를 짰는데

 

x = 2, n = 5 일때

 

이렇게 하니까 결과값이 "2468" 가 나와서 for문이 반복될때마다 저 사이에 ,쉼표를 어떻게 찍어주지? 그리고 어떻게 배열로 만들지? 라는 생각을  한 뒤 계속 헤메다가 나중에는 answer를 배열로 선언했으니 배열에 바로 넣으면 될것 같은데.... 배열에 어떻게 넣지?라는 생각으로 바뀌면서 겨우 풀 수 있었다ㅠㅠ 

 

 

다른사람이 푼 답

function solution(x, n) {
    return Array(n).fill(x).map((v, i) => (i + 1) * v)
}

위 코드는 fill() 메소드와 map() 메소드를 사용하였고, 화살표 함수로 나타냈다.

 

 

fill()은

배열의 start index부터 end index 전까지(end index는 미포함) value값으로 채워주는 함수입니다.

 

 

value

배열에 채울 값을 지정합니다.

 

start

value 값을 채울 배열의 시작 index입니다.

입력하지 않으면 기본값은 0입니다.

 

end

value 값을 채울 배열의 종료 index입니다.

입력하지 않으면 기본값은 배열의 길이(arr.length)입니다.

 

 리턴값 

지정한 값으로 채워진 배열을 리턴합니다.

 

 

map()은

배열(arr)의 각각의 element들이 callback 함수의 파라미터로 전달되고,

map() 함수는 이 callback 함수가 return 하는 값으로 새로운 배열을 만들어서 리턴합니다.

 

 

callback(currentValue, index, array)

새로운 배열을 생성하는 함수이고, 다음 3개의 파라미터를 받습니다.

  • currentValue : 현재 처리중인 배열의 element
  • index(optional) : 현재 처리중인 배열의 index
  • array(optional) : 현재 처리중인 배열

thisArg (optional)

callback을 실행할 때 this로 사용할 객체입니다.

 

 리턴값 

callback함수에 의해서 변경된 arr의 새로운 배열이 리턴됩니다.

이때, 원래의 배열인 arr는 변경되지 않습니다.

 


 

fill() map() 두 개 활용 법은 아래 사이트 참고하면 될것 같다.

 

Javascript, fill()과 map()으로 1부터 100까지 배열 생성하기

제로초님 자바스크립트 유툽 실시간 방송을 보다가유용할 것 같아서 따로 블로그에 정리!😗

velog.io

 

 

fill

 

[Javascript] 배열 같은 값으로 채우기

Javascript에서 배열을 다루는 방법을 알아보고 있습니다. [Javascript] 배열 선언하는 2가지 방법 [Javascript] 배열 앞, 뒤에 값 추가, 삭제하기 (1) [Javascript] 배열 중간에 값 추가, 삭제하기 (2) - splice() 함

hianna.tistory.com

 

 

map

 

[Javascript] 배열 map() 함수로 변경된 새로운 배열 생성하기

map() 함수는 배열을 다룰 때 매우 자주, 유용하게 사용되는 함수입니다. 배열의 map() 함수는, 배열을 순회하면서 각 element의 값을 변경하여 새로운 배열을 만들어 줍니다. map() 함수로 새로운 배열

hianna.tistory.com

 

728x90
LIST