728x90

풀이 과정 

 

이 문제의 핵심은 순서가 없고 데이터 중복이 허용이안되는 자바의 컬렉션 프레임워크의 "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;
    }
}

728x90

'알고리즘' 카테고리의 다른 글

[프로그래머스] Java 문자열 내림차순 배치하기  (0) 2022.05.31
[프로그래머스] 체육복  (0) 2022.02.08

+ Recent posts