728x90
▶ Stream API의 anyMatch() 메서드활용한 간단한 문제가 있어 정리해보고자 합니다.
문제설명
입력 & 출력
나의 풀이
이번 문제는 간단하게 인자로 받은 배열중에서 0~9의 값이 없는 값을 추출하여 합을 구하는 문제입니다.
이중 for문이나 다른 방법도 많지만 Stream API의 anyMatch() 메서드를 사용하면 간편하게 풀이할 수 있습니다.
먼저 향상된 for문을 사용하여 0 ~9까지 순회를 합니다.
for문안에서 Stream을 사용하기 위해서 배열을 "Arrays.stream()"으로 stream으로 변환을 해주고, stream API의 anyMatch() 메서드를 사용하여 numbers의 요소와 0~9를 비교하여 값이 있는지 체크를 합니다.
만약 찾은 값 found가 false라면 없다는 의미이기 때문에 해당 값을 더해주어 마무리해 줍니다.
다른 풀이✅
import java.util.Arrays;
class Solution {
public int solution(int[] numbers) {
return 45-Arrays.stream(numbers).sum();
}
}
다른 사람의 풀이에서 본 코드인데 stream API의 sum() 메서드를 사용하면 더욱 간편히 풀이할 수 있습니다.
먼저 0~9의 값은 고정되어 있고, 함또 한 45로 고정되어 있기 때문에 45에서 인자로 받은 numbers의 배열의 합을 빼주면 존재하지 않는 값의 합을 한 번에 구할 수 있습니다..
참고 ❗
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 이진 변환 반복하기 (toBinaryString, chars(), stream.count(), Java) (1) | 2024.06.08 |
---|---|
[프로그래머스] Lv.1 예산 (greedy, 탐욕, 그리디 알고리즘, Java) (0) | 2024.06.08 |
[SQL] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기(MySQL) (0) | 2024.05.15 |
[프로그래머스] 연도별 대장균 크기의 편차 구하기 (MySQL) (0) | 2024.05.03 |
[프로그래머스] 짝지어 제거하기 (JavaScript) (1) | 2024.05.03 |