본문 바로가기

Plo Algorithm

프로그래머스 Lv1 두개 뽑아서 더하기

두개 뽑아서 더하기

class Solution {
        public Set<Integer> solution(int[] arr) {

            Set<Integer> set = new TreeSet<>();
            for (int i =0 ; i < arr.length ; i++){
                for (int j = 0; j < arr.length; j++) {
                    if(i == j) {
                        continue;
                    }
                    set.add(arr[i] + arr[j]);
                }
            }
            return set;
        }
    }

 

            Set<Integer> set = new TreeSet<>();

-Set-

저장 순서가 유지되지 않는다.

반복문과 인덱스를 통하여 Set의 탐색이 불가능해 Iterator를 사용해야한다.

객체의 중복을 자동으로 제거해준다.

 

-TreeSet-

이진 탐색트리 형태로 데이터를 저장하며

데이터의 추가 , 삭제는 다른 Set Collection에 비해 오래걸리지만

검색과 정렬이 다른 Set에 비해 뛰어나다.

오름차순으로 자동 정렬해준다.


인덱스가 같은 경우에는 continue로
Set객체에 할당하지 않고 반복을 진행하게하고.

인덱스가 같은 경우에 set에 할당하게 되면

인덱스 값 + 나머지 값만 할당하는게 아닌

인덱스 값 + 인덱스 값 까지 할당함으로 문제의 요구사항에서 벗어난다.

만들어둔 treeSet객체에 add함으로써 자동으로 중복이 제거된 오름차순 정렬 set이 완성된다.