Language/JAVA

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

paran21 2022. 1. 20. 15:51

https://programmers.co.kr/learn/courses/30/lessons/68644

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

class Solution {
    public int[] solution(int[] numbers) {
        List<Integer> arr = new ArrayList<>();
        for (int i = 0; i < numbers.length; i++) {
            for (int j = 0; j < numbers.length; j++) {
                if(i != j) {
                    int k = numbers[i] + numbers[j];
                    arr.add(k);
                    if (!arr.stream().anyMatch(x -> x.equals(k))) arr.add(k);
                }
            }
        }

        //오름차순
        Collections.sort(arr);
        //int배열로 변환
        int[] answer = arr.stream().mapToInt(Integer::intValue).toArray();
        return answer;
    }
}

Stream anyMatch를 사용해서 중복을 제거하였다.

다른 풀이를 보니 중복의 경우 HashMap이나 Set을 사용하는 경우가 많은 것 같다.

추가로 공부하기!

'Language > JAVA' 카테고리의 다른 글

[프로그래머스] 모의고사  (0) 2022.01.20
[프로그래머스] 로또의 최고 순위와 최저 순위  (0) 2022.01.20
[프로그래머스] 같은 숫자는 싫어  (0) 2022.01.20
#최소값, 최대값 구하기  (0) 2022.01.19
#Stream  (0) 2022.01.19