말하는 컴공감자의 텃밭

프로그래머스 - 두 개 뽑아서 더하기 (자바) java Hashset 본문

알고리즘/Programmers - Java

프로그래머스 - 두 개 뽑아서 더하기 (자바) java Hashset

현콩 2023. 4. 24. 16:51
728x90

간단쓰~

먼저 반복으로 배열에서 두개 인자를 뽑아 더하고, 중복이 아니라면 배열에 넣은 후 Arrays.sort로 정리해주기로 했다.

중복을 막기위해 HashSet을 사용~!

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import java.util.*;
class Solution {
    public int[] solution(int[] numbers) {
        Set<Integer> set = new HashSet<Integer>();
        int n = numbers.length;
       
        
        for (int i = 0; i<n; i++){
            for ( int j = i+1; j<n; j++){
                set.add(numbers[i] + numbers[j]);
            }
        }
        
        int[] answer = new int[set.size()];
        int k = 0;
        
          forint num : set){
             answer[k++= num;
          }
            
        Arrays.sort(answer);
        return answer;
    }
}
cs

Set<Integer> set = new HashSet<Integer>(); // Set 인터페이스 중 중복과 순서를 고려하지 않는 Hash를 사용.

 for (int i = 0; i<n; i++){
            for ( int j = i+1; j<n; j++){
                set.add(numbers[i] + numbers[j]);  // 반복문을 통해 배열에서 요소 두개를 더해 set에 add
            }
        }

int[] answer = new int[set.size()];                   // set에 넣은 사이즈로 answer 초기화.
        int k = 0; // 인덱스
        
          for( int num : set){
             answer[k++] = num;                           // num 변수에 set에 저장된 값을 하나씩 전달. answer 배열에 저장
          }
            
        Arrays.sort(answer);                               // 배열 오름차순 정리

 

스트림.. 그게머에여

스트림을 사용하는 경우도 있는데 이게 뭔가 싶다.. 공부 해봐야겠다..

인생.. 출근해야지

728x90
Comments