js 프로그래머스 두개 뽑아서 더하기

이명진·2022년 9월 30일
0

코드카타

목록 보기
48/69

문제 요약

배열이 주어지고 배열에서 아무거나 두개 뽑아서 더한 값들을 배열에 담으면 된다.
단 중복을 제거하고 오름차순으로 정렬해야 한다.

내가 푼 풀이

function solution(numbers) {
  let answer =[];
for(let i=0; i<numbers.length;i++){
  for(let j=0;j<numbers.length;j++){
    let sum
    if(i!==j){
      sum= numbers[i]+numbers[j];

    }else{
      continue;
    }
    if(answer.find((arr) => arr===sum)){
      // console.log(answer.find(()=>0))
      continue;
    }else{
     
    answer.push(sum);
    }
    
  }
}
  answer = new Set(answer)
  answer = [...answer]
    return answer.sort((a,b) => {return a-b})
}

일단 하나씩 하나씩 포문을 돌려서 구해준다
배열중에 같은 것을 두번 뽑을 수 없으니 같은 자리일때는 그냥 진행한다.
그리고 나머지는 배열에 넣어준다
그리고 더한 값중에서 중복을 제거하기 위해 넣은 배열과 비교하여 중복이 있으면 제거해준다.
나는 find()함수를 사용했다. 다른사람의 풀이를 보니 include를 사용해도 될것 같다
그리고 정렬을 해주었다
이정도 하니 테스트 케이스는 맞았는데 제출을 하니 1,5,9번 문제가 계속 틀렸다
확인을 해보니 0이 여러개 있을때 0을 한개만이 아닌 여러개를 리턴했다.

그래서 어쩔수 없이 set()을 사용해서 문제를 풀었다.

결과는 성공할수 있었다.

다른 사람의 풀이를 보니 어차피 set을 사용하여 중복을 제거할거면
나의 로직에서 같은 자리일때 더하지 않는 것을 빼도 되었다.

오늘도 그래도 쉽게 한건 해결했다.

profile
프론트엔드 개발자 초보에서 고수까지!

0개의 댓글