프로그래머스 코딩테스트 연습 level 1 '두 개 뽑아서 더하기'
- for문 이용하여 배열에서 객체 뽑아오기
- Set함수를 이용하여 중복 제거하기
- 전개 구문[...] 이용하기
- sort() 이용하여 오름차순 정렬하기
function solution(numbers) {
var temp = [];
for(var i = 0; i < numbers.length; i++){
for(var j = i+1; j<numbers.length; j++){
temp.push(numbers[i] + numbers[j])
}
}
// 전개구문 이용 -> 깊은 복사가 베이스로 깔려있음.
const answer = [...new Set(temp)]
answer.sort((a,b) => a-b);
return answer;
}
var result = solution([5,0,2,7]);
console.log(result);
for(var i = 0; i < numbers.length; i++){
for(var j = i+1; j<numbers.length; j++){
temp.push(numbers[i] + numbers[j])
}
}
for()을 이용하여 numbers배열 안에 있는 2개의 객체를 중복 없이 뽑아서 더해주고 temp안에 push합니다.
const answer = [...new Set(temp)];
// const answer = {...new Set(temp)};
// 라고 써도 무관함.
전개 구문[...]을 이용하여 temp에서 중복을 제거한 배열을 answer에 저장합니다.
전개 구문(spread syntax): 객체나 배열들을 전개(펼침)하여 사용할 수 있도록 해주는 문법. 다른 객체를 깊은 복사를 해주어 값을 추가하거나 변경할 수 있다.
여기서는 temp를 깊은 복사하여 set함수를 적용시켜주어 중복을 제거해주었다.
answer.sort((a,b) => a-b);
sort()는 오름차순 또는 내림차순으로 정렬할 수 있도록 해주는 함수이다.
괄호 안에 함수를 넣을 수 있고, 위와같이 쓰면 오름차순 정렬 b-a라고 쓰면 내림차순 정렬이 된다.
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges