✏️기록하는 즐거움
article thumbnail

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

|  제출

function solution(numbers) {
  const result = [];

  for (let i = 0; i < numbers.length; i++) {
    for (let j = i + 1; j < numbers.length; j++) {
      let sum = numbers[i] + numbers[j];

      if (result.indexOf(sum) === -1) {
        result.push(sum);
      } else {
        continue;
      }
    }
  }

  return result.sort((a, b) => a - b);
}

 

|  풀이과정

중복되지 않은 덧셈 결과들을 반환하기 위해서 indexOf 메서드를 사용하였다.

다른 사람의 풀이를 보니, 모든 값을 더해주고 유일한 값을 저장하는 Set 객체로 만들어주는 것도 하나의 방법이었다!

function solution(numbers) {
    const temp = []

    for (let i = 0; i < numbers.length; i++) {
        for (let j = i + 1; j < numbers.length; j++) {
            temp.push(numbers[i] + numbers[j])
        }
    }

    const result = [...new Set(temp)]

    return result.sort((a, b) => a - b)
}

 

|  개념

String.prototype.indexOf()

  • 문자열에서 지정된 요소가 발견되는 첫 번째 인덱스를 반환하고 해당 값이 없으면 -1을 반환한다.

Set

  • Set은 중복되지 않은 유일한 값으로 이루어진 콜렉션 객체이다.
  • new 연산자로 객체를 생성할 수 있다.
const mySet = new Set();
  • size 프로퍼티를 사용하면 Set 객체의 크기를 알 수 있다.
const mySet = new Set([1, 3]);
console.log(mySet.size); // 2

 

profile

✏️기록하는 즐거움

@nor_coding

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!