📌 문제
https://programmers.co.kr/learn/courses/30/lessons/68644
📌 코드
package programmers;
import java.util.*;
public class Lv1_Pro_220701_3 { // 두개 뽑아서 더하기
public List<Integer> solution(int[] numbers) {
Set<Integer> set = new LinkedHashSet<>(); // 1
for (int i = 0; i < numbers.length; i++) { // 2
for (int j = 0; j < numbers.length; j++) {
if (i != j) {
set.add(numbers[i] + numbers[j]);
}
}
}
List<Integer> list = new ArrayList<>(set); // 3
Collections.sort(list); // 4
return list;
}
// 도움 코드
public static void main(String[] args) {
int[] numbers = {5, 0, 2, 7};
Lv1_Pro_220701_3 s = new Lv1_Pro_220701_3();
System.out.println(s.solution(numbers));
}
}
📌 풀이
- 중복 없는 값을 저장하기 위해 Set 인터페이스 생성
- 2 중 for문을 활용하여 i와 j 가 같지 않을 때만 Set에 저장
- 오름 차순으로 정렬을 해야 하는데 Set에는 순서가 없으므로 List 인터페이스에 set 값 저장
- Collections.sort 메서드를 활용하여 값 저장하고 list 리턴
'Programmers' 카테고리의 다른 글
[Java] 프로그래머스 : 키패드 누르기 (0) | 2022.07.12 |
---|---|
[Java] 프로그래머스 : 모의고사 (0) | 2022.07.06 |
[Java] 프로그래머스 : 주식가격 (0) | 2022.06.09 |
[Java] 프로그래머스 : K번째 수 (0) | 2022.06.03 |
[Java] 프로그래머스 : 약수의 개수와 덧셈 (0) | 2022.05.30 |