Sad Puppy 3 [프로그래머스 lv1]두 개 뽑아서 더하기 :: 개발자 아지트

https://school.programmers.co.kr/learn/courses/30/lessons/68644?language=java

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제설명

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요.


문제 해결 방법

 

주어진 배열에서 각각 다른인덱스의 요소를 뽑아서 합을 구한후 해쉬셋에 추가

해쉬셋을 사용하여 중복제거함


코드 구현

import java.util.HashSet;

class Solution {
    
    public static HashSet<Integer> set1 = new HashSet<Integer>();
    public int[] solution(int[] numbers) {
        int[] answer = {};
        
        for(int i = 0; i < numbers.length; i++){
            for(int j = 0; j< numbers.length; j++){
                if(i == j){
                    continue;
                }
                
                int sum = numbers[i] + numbers[j];
                set1.add(sum);
                
            }
        }
        
       return set1.stream().sorted().mapToInt(Integer::intValue).toArray();
        
        //해쉬셋을 stream으로 변환후, 오름차순으로 정렬한다. 
        // 그 후 set1의 Integer객체들을 int형으로 변환해주고, 배열로 변환한다. 
    }
}

시간/공간 복잡도

O(N^2)


최적화 및 개선

따로 하지않음


어려웠던 점

문법에 익숙하지 않은점

 

 

'코딩테스트 > 문제 풀이 - Java' 카테고리의 다른 글

[백준2667] 단지번호붙이기  (0) 2024.03.06
[백준2606] 바이러스  (0) 2024.03.05
[백준2178] 미로 탐색  (0) 2024.03.05
[백준1260] DFS와 BFS  (0) 2024.03.04

+ Recent posts