풀이 과정
이 문제의 핵심은 순서가 없고 데이터 중복이 허용이안되는 자바의 컬렉션 프레임워크의 "Set"이 핵심인거 같다.
우선 HashSet을 만든다음 2중 반복문 형태에서
서로 다른 인덱스에 있는 두개의 수를 뽑아야했으므로 i를 제외한 나머지 j 반복자를 더한 값을
HashSet에 담았고
Set을 ArrayList에 담아 Collections.sort() 메서드를 통해 오름차순으로 정렬한뒤
다시 ArrayList를 Answer(정수형 배열) 에 담았는데 한번에 통과하였다.
풀이 코드
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
//배열의 임의 두수를 더해서 담을 정수 addnumber
int addnumber = 0;
Set<Integer> setnumber = new HashSet<>();
for (int i = 0; i < numbers.length; i++) {
for (int j = 0; j < numbers.length; j++) {
if (i == j) {
} else {
addnumber = numbers[i] + numbers[j];
setnumber.add(addnumber);
}
}
}
List<Integer> arraylist = new ArrayList<Integer>(setnumber);
Collections.sort(arraylist);
int[] answer = new int[arraylist.size()];
int size=0;
for(int temp : arraylist) {
answer[size++] = temp;
}
for(int i=0; i<answer.length; i++) {
System.out.println(answer[i]);
}
return answer;
}
}
'알고리즘' 카테고리의 다른 글
[프로그래머스] Java 문자열 내림차순 배치하기 (0) | 2022.05.31 |
---|---|
[프로그래머스] 체육복 (0) | 2022.02.08 |