[문제설명]


처음 ArrayList로 배열을 넣을 통을 만들고

i와 j에 인덱스 번호를 부여하여 각 인덱스에 있는 숫자를 더하는 것 까지는 잘 생각해서 적었는데

중복되는 부분을 어떻게 빼면 좋을지에 대한 간단한 코드가 아직은 생각나지 않았다ㅜㅜ

분명 알고리즘을 풀면서 한 3번은 반복해서 썼던 것 같은데

문제가 바뀌고 코드가 바뀌면 그 안에 응용해서 넣는 능력이 너무 부족한 것같다..

import java.util.ArrayList;
import java.util.Arrays;

        class Solution {
            public int[] solution(int[] numbers) {

                ArrayList<Integer> list = new ArrayList<>();


                for (int i=0; i< numbers.length-1; i++) {
                    for (int j=i+1; j<numbers.length; j++) {
                        int plus = numbers[i]+numbers[j];
                        if (!list.contains(plus)) { // 이부분을 생각하는데 까지 너무 오래 돌아간것같다.
                            list.add(plus);
                        }
                    }
                }

                int[] answer = new int[list.size()];
                for(int i=0; i<list.size(); i++) {
                    answer[i] = list.get(i);
                    }


                Arrays.sort(answer);

                return answer;
            }
        }

그래도 처음과는 다른 점은 내가 스스로 어떤 함수를 써야하고 어떻게 풀어가면 좋을지 스스로 생각하는 능력이 아주 조금은 키워진 것 같다.

문제를 계속 풀고 코드를 계속 쳐보면서 더 익혀야겠다..

+ Recent posts