ppotatoG


Back to all posts

연습 두 개 뽑아서 더하기

Written by ppotatoG & Posted on December 7th, 2021

연습 두 개 뽑아서 더하기

처음 제출한 답

답을 담아줄 배열 newArr

배열 내 다른 인덱스에 있는 두개의 수를 더해야 하니 중첩 중복문을 만들어준다

바깥 중복문 i에서는 0부터 시작해서 arr.length - 1

안쪽 중복문 k1부터 시작해서 arr.length

그렇게 arr[i] + arr[j] 더한 값을 모두 newArr에 담아준다

정렬 및, 중복제거를 하고 반환!

function solution(arr) {
const newArr = [];
for (let i = 0; i < arr.length - 1 ; i++) {
for(let j = i + 1; j < arr.length ; j++){
newArr.push(
arr[i] + arr[j]
)
}
}
newArr.sort((a, b) => a == b ? 0 : a > b ? 1: -1 );
const answer = newArr.filter((a, b) => newArr.indexOf(a) === b);
return answer;
}

최근 보충한 답

사실 보충이랄것도 없고, Set으로 중복제거하는걸 별로 좋아하진 않지만.. 그래도 줄여보자면...

중복은 동일하게 돌리고, 중복제거와 정렬 부분에서 한번에 해버리기!

function solution(arr) {
const newArr = [];
for (let i = 0; i < arr.length -1 ; i++) {
for(let j = i + 1; j < arr.length ; j++){
newArr.push(arr[i] + arr[j]);
}
}
return [...new Set(newArr.sort((a, b) => a - b))];
}

Posted on December 7th, 2021