실천하기/코딩테스트
[220104] 코테 Lv.1 / x만큼 간격이 있는 n개의 숫자
한코코
2022. 1. 4. 21:15
해결 : for문이랑 배열 사용
function solution(x, n) {
let answer = [];
//2,5 -> 2의 배수를 5개 만들어야함
for(let i=0; i<n; i++){
answer[i]=x*(i+1);
}
return answer;
}
원본문제는 아래링크에
https://programmers.co.kr/learn/courses/30/lessons/12954
[220108] Array(), fill(), map() 이용해서 풀기
효율적이게 쓰는 방법도 손에 조금씩 익히자.
1000번을 더한다면 곱셈을 쓰지 하위 버젼인 덧셈을 쓰지 않는것처럼. 당장은 모르더라도 손에 조금씩 익혀두자.
let x=2;
let n=5;
function solution(x,n){
return Array(n).fill(x).map((v,i)=>(i+1)*v)
/*
- 요소를 n개 만드는 새 배열을 만들건데,
- 그 안을 x로 채울거야.
- 그 x에 하나씩 접근해서 함수처리 한 값으로 새 배열을 만들거야
- map(함수(처리할 현재 요소, 처리할 현재 요소의 인덱스, map()을 호출한 원본배열))
- 인덱스 0부터 하나씩 접근할때 바뀌는 인덱스가 i
*/
}
solution(2,5);
// {빈 요소, 빈 요소, 빈 요소, 빈 요소, 빈 요소}
// {2, 2, 2, 2, 2}
// {(0+1)*2, (1+1)*2, (2+1)*2, (3+1)*2, (4+1)*2}
// {2, 4, 6, 8, 10}
Array(n) -> [ 빈 공간, 빈 공간, ... n개]
fill(x) -> 배열의 시작 인덱스부터 끝 인덱스까지 정적인 값 x로 채운다
map() -> 선언된 배열 내의 모든 요소 각각에 대해 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환함.
위 생성자와 메소드에 관한 작성글 : https://hancoco.tistory.com/manage/newpost/39?type=post&returnURL=https%3A%2F%2Fhancoco.tistory.com%2F39
https://hancoco.tistory.com/manage/newpost/39?type=post&returnURL=https%3A%2F%2Fhancoco.tistory.com%2F39
hancoco.tistory.com