728x90
https://programmers.co.kr/learn/courses/30/lessons/68644?language=java
주어진 배열에서 숫자 두개를 뽑아서 더했을때 나올수 있는 모든 경우의 수를 구하는 문제입니다.
저같은 경우는 for문을 두번 돌려서 두개를 뽑아내는 모든 경우의수를 계산하여 중복이 없도록 Set 객체를 만들었고 set은 정렬을 할수 없기 때문에 배열에 다시 담아서 정렬하여 출력했습니다.
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
Set<Integer> set = new HashSet<Integer>();
List<Integer> list = new ArrayList<Integer>();
for(int i = 0; i < numbers.length; i++){
for(int j = i + 1; j < numbers.length; j++){
set.add(numbers[i] + numbers[j]);
}
}
int[] answer = new int [set.size()];
for(int i : set){
list.add(i);
}
for(int i = 0; i < list.size(); i++){
answer[i] = list.get(i);
}
Arrays.sort(answer);
return answer;
}
}
728x90
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers]약수의 개수와 덧셈_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.23 |
---|---|
[Programmers]서울에서 김서방 찾기_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.20 |
[Programmers]예산_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.18 |
[Programmers]내적_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.12 |
[Programmers]콜라츠 추측_자바 / 프로그래머스 연습문제(level 1) (0) | 2021.08.11 |