![[프로그래머스] 두 개 뽑아서 더하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBrTWe%2FbtsJKwmiDNs%2FaZwBBd7kVCiNqoWweugJbK%2Fimg.png)
[프로그래머스] 두 개 뽑아서 더하기프로그래머스2024. 9. 24. 10:05
Table of Contents
https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
두 개 뽑아서 더하기(#39)
주어진 숫자 배열의 모든 쌍의 합을 구하고, 중복을 제거한 후 오름차순으로 졍렬된 결과 반환
📌 내가 구현한 정답
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
public class Solution {
public int[] solution(int[] numbers) {
List<Integer> answerList = new ArrayList<>();
for (int i = 0; i < numbers.length; i++) {
for (int j = i + 1; j < numbers.length; j++) {
answerList.add(numbers[i] + numbers[j]);
}
}
Set<Integer> answerSet = new HashSet<>(answerList); // 중복제거
int[] answer = new int[answerSet.size()];
int index = 0;
for (int num : answerSet) {
answer[index++] = num;
}
Arrays.sort(answer); // 오름차순 정렬
return answer;
}
}
- List<Integer> answerList = new ArrayList<>() : 결과를 저장할 리스트 생성
- 첫번째 for문을 통해 모든 요소를 순회하는 동안, 두번째 for문을 통해 현재 요소보다 뒤에 있는 모든 요소와의 합을 계산
- answerList.add(numbers[i] + number[j]) : 계산된 합을 리스트에 추가 (여러 중복된 값이 존재)
- Set<Integer> answerSet = new HashSet<>(answerList) : 리스트 속 중복된 값을 제거하고 집합으로 변환
- int[] answer = new int[answerSet.size()] : 결과를 저장할 배열을 집합의 크기만큼 생성
- for(int num : answerSet) {...}: 집합의 요소를 순회하며 배열에 값을 복사
- Arrays.sort(answer) : 배열을 오름차순으로 정렬
📌 TIL
- 중복 제거 : HashSet을 사용하여 중복된 합을 제거
- 정렬 : Array.sort을 사용하여 결과를 오름차순으로 정렬
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 디펜스 게임 - LV 2 (0) | 2025.02.12 |
---|---|
[프로그래머스] 콜라 문제 (0) | 2024.09.30 |
[프로그래머스] 가장 가까운 같은 글자 (1) | 2024.09.25 |
[프로그래머스] 숫자 문자열과 영단어 (1) | 2024.09.23 |
[프로그래머스] 3진법 뒤집기 (0) | 2024.09.03 |
@킴준현 :: 차근차근 꾸준히
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!