본문 바로가기

백준

프로그래머스-월간 코드 챌린지 시즌1-두 개 뽑아서 더하기

programmers.co.kr/learn/courses/30/lessons/68644

 

코딩테스트 연습 - 두 개 뽑아서 더하기

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한

programmers.co.kr

진짜 오랜만에 프로그래머스를 풀어보았다. 월간 코드 챌린지라는 새로운 제도가 생겨서 신기했다. 간단한 문제로 map을 두 번 이용하여 같은 인덱스이 존재하는 숫자이면 더하지 않는 형태로 진행하였다. 중복은 set으로 걸렀다. 아쉬운 점은 sort에서 a - b로 리턴했어도 될 것을 굳이 if문을 이용하여 코드를 길게 만들었다는 점이다. 다음에는 더 짧은 형태를 찾아봐야겠다.

function solution(numbers) {
  st = new Set();
  numbers.map((num1, idx1) =>
    numbers.map((num2, idx2) => idx1 !== idx2 && st.add(num1 + num2))
  );
  const answer = [...st].sort((a, b) => {
    if (a < b) {
      return -1;
    } else {
      return 1;
    }
  });
  return answer;
}

'백준' 카테고리의 다른 글

백준2206 - 벽 부수고 이동하기  (0) 2021.04.20
백준12852 - 1로 만들기2  (0) 2021.04.14
백준 2653 - 안정된 집단  (0) 2021.01.27
백준16922 - 로마 숫자 만들기  (0) 2021.01.26
백준12904 - A와 B  (0) 2021.01.25