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의 합을 빼는 방법도 있다!
'Language > JAVA' 카테고리의 다른 글
[프로그래머스] 핸드폰 번호 가리기 (0) | 2022.01.15 |
---|---|
[프로그래머스] 평균 구하기 (0) | 2022.01.14 |
[프로그래머스] 음양 더하기 (0) | 2022.01.14 |
[프로그래머스]문자열을 정수로 바꾸기 (0) | 2022.01.14 |
[프로그래머스]두 정수 사이의 합 (0) | 2022.01.14 |