코딩테스트

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

Adose 2024. 10. 23. 20:53

1️⃣ 풀이(ArrayList 사용)  

  • 풀이는 아래 코드와 같다. (통과)
  • 다 풀고 보니 stream을 통해 중복을 제거를 하는게 아니라, 애초에 HashSet을 사용하면 바로 중복이 제거 된 채로 저장이 되니 HashSet을 사용해도 좋을 것 같다는 생각이 들었다.
   static public int[] solution(int[] arr) {

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

            for (int i = 0; i < arr.length-1; i++) {

                for (int j = i+1; j < arr.length; j++) {

                    resultArr.add(arr[i] + arr[j]);
                }

            }
            return resultArr.stream().distinct().sorted().mapToInt(Integer::intValue).toArray();
        }

2️⃣ 풀이(HashSet 사용)

  • HashSet으로 구현(통과) 
static public int[] solution(int[] arr) {

            HashSet<Integer> resultArr = new HashSet<>();

            for (int i = 0; i < arr.length-1; i++) {

                for (int j = i+1; j < arr.length; j++) {

                    resultArr.add(arr[i] + arr[j]);
                }

            }
            return resultArr.stream().distinct().mapToInt(Integer::intValue).toArray();
        }