Language/JAVA

[프로그래머스] 없는 숫자 더하기

paran21 2022. 1. 14. 20:53

import java.util.stream.IntStream;

class Solution {
    public int solution(int[] numbers) {
        int answer = 0;
        int [] var = new int[] {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; //비교를 위해 새로운 배열 형성
            for (int i = 0; i < var.length; i++) { //var의 길이만큼 반복
                int num = var[i]; //비교는 위해 num을 선언, 반복문에 따라 0, 1, 2, ... 값을 가질 것임.
                //IntStream.of(array).anyMatch(x -> x == ?) : 정수 배열인 array 중에 x값이 포함되었는지를 true/false로 판별
                if (!IntStream.of(numbers).anyMatch(x -> x == num)) { //!가 붙었기 때문에 false인 경우
                    answer += num; //answer에 num을 더함
                }
            }
        return answer;
    }
}

IntStream.of(array).anyMatch(x -> x == 3)

IntStream.of(array).anyMatch(x -> x < 50)

과 같은 형태로도 사용할 수 있다.

 

 

++코드 리뷰 후 추가

위에 var 배열을 새로 선언하지 않고, 간단히 대조군으로 합을 더해 numbers의 합을 빼는 방법도 있다!