728x90
https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
본 포스팅에서 다루는 문제는 위 프로그래머스 링크를 통하여 문제 확인 및 풀이가 가능합니다!
1. 문제 풀이
문제에서 제시한 것처럼 단순하게 서로 다른 인덱스에 있는 두 개의 수를 뽑아서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하기만 하면 되는 간단한 문제입니다.
신경써야 할 부분은 서로 다른 인덱스에 있는 두 개의 수를 뽑아서 나온 수가 중복되는 경우에는 하나만 리스트에 담겨야하며 최종 결과물로는 오름차순으로 정렬된 리스트를 반환해야 한다는 것입니다.
저는 이번 문제에서
서로 다른 인덱스에 있는 두 개의 수를 뽑기 위하여 -> 2중 for문 사용
두 개의 수의 합이 중복되는 경우에 하나만 담기 위하여 -> Set 자료구조 사용
최종 결과를 오름차순으로 정렬하기 위하여 -> sort 메서드 사용
3가지 조건에 집중하여 풀이하였습니다.
2. 정답 코드
function solution(numbers) {
const len = numbers.length;
const set = new Set();
for (let i = 0; i < len - 1; i++)
for (let j = i + 1; j < len; j++)
set.add(numbers[i] + numbers[j]);
return [...set].sort((a, b) => a - b);
}
728x90
'알고리즘' 카테고리의 다른 글
[알고리즘] 코딩테스트 연습(연습 문제) - [JavaScript] 멀리 뛰기 (2) | 2024.06.05 |
---|---|
[알고리즘] 코딩테스트 연습(코딩테스트 입문) - [JavaScript] 개미 군단 (2) | 2024.06.05 |
[알고리즘] 코딩 테스트 연습(월간 코드 챌린지 시즌 1) - [JavaScript] 이진 변환 반복하기 (0) | 2024.04.04 |
[알고리즘] 코딩테스트 연습 - [JavaScript] 최솟값 만들기 (0) | 2024.04.04 |
[알고리즘] 코딩테스트 연습 - [JavaScript] 달리기 경주 (0) | 2024.03.25 |