알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄

 

Think🤔

Solution✍
import java.util.Arrays;
import java.util.ArrayList;

class Solution {
    public int[] solution(int[] numbers) {
        int[] answer = {1};
        Arrays.sort(numbers); // numbers 배열들 오름차순으로 정렬 
        
        // 중복된 값 로직 안넣게 Set으로 변경 가능
        ArrayList<Integer> arr = new ArrayList(); // 제네릭 생략 가능 
        
        int sumNum = 0;
        for(int i=0; i<numbers.length; i++){
            for(int j=i+1; j<numbers.length; j++){
                sumNum = numbers[i]+numbers[j];
                // 중복값 비교 로직 필요
                System.out.println(sumNum);
            }
        }
        
        return answer;
    }
}
import java.util.Arrays;
import java.util.ArrayList;

class Solution {
    public int[] solution(int[] numbers) {
        
        // 중복된 값 로직 안넣게 Set으로 변경 가능
        ArrayList<Integer> arr = new ArrayList(); // 제네릭 생략 가능 
        
        int sumNum = 0;
        for(int i=0; i<numbers.length; i++){
            for(int j=i+1; j<numbers.length; j++){
                sumNum = numbers[i]+numbers[j];
                if(arr.indexOf(sumNum) == -1){
                    arr.add(sumNum);
                    continue;
                }
            }
        }
        
        int[] answer = new int[arr.size()];
        
        for(int i=0; i<arr.size(); i++){
            answer[i] = arr.get(i);
        }
        
        Arrays.sort(answer);
        
        return answer;
    }
}

Review🤩

HashSet을 이용하면 중복값을 안받을 수 있다.

ArrayList를 이용해서 내부에서 for문을 돌지않고, indexOf를 사용할 수 있음... 어느정도의 코스트가 들어가는지는 잘 모르겠다.


 

'Algorithm' 카테고리의 다른 글

[프로그래머스] K번째수  (0) 2022.08.02
[프로그래머스] 3진법 뒤집기  (0) 2022.07.29
[프로그래머스] 2016년  (0) 2022.07.27
[프로그래머스] 최소직사각형  (0) 2022.07.27
[프로그래머스] 소수 만들기  (0) 2022.07.26

+ Recent posts