본문 바로가기
실천하기/코딩테스트

[220104] 코테 Lv.1 / x만큼 간격이 있는 n개의 숫자

by 한코코 2022. 1. 4.

 

 


해결 : 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

 

 

댓글