정답 1
확실히 IntStream 에 맞들이니 이러한 문제들은 상당히 재미있게 빠르게 풀 수가 있었다.
딱 봐도 height 보다 높은 애들만 filter 처리하여 그 수만 계산해주면 될것 같다.
import java.util.stream.IntStream;
class Solution {
public int solution(int[] array, int height) {
int[] result = IntStream.of(array).filter(num -> num > height).toArray();
return result.length;
}
}
정답이었다.
하지만 다른사람들의 답을 확인한 후 알게된 사실인데 나는 배열을 구해서 그 배열의 length 로 처리를 했는데 IntStream 마지막에 .toArray가 아닌 .count() 로 처리를 하여 배열 안에 요소들의 갯수를 long 값으로 받는 방법이 있었다. count() 라는 저 메서드도 생각보다 요긴하게 쓰일것 같아 잘 알아둬야겠다.
정답 2
import java.util.Arrays;
class Solution {
public int solution(int[] array, int height) {
return (int) Arrays.stream(array).filter(value -> value > height).count();
}
}
.count() 로 최종 연산을 했을 시 long 타입으로 값을 받기때문에 return 에 int 형번환은 필수!!
'프로그래머스 - 코딩테스트' 카테고리의 다른 글
[Java][프로그래머스] - LVL.0 최댓값 만들기(1) (0) | 2023.01.25 |
---|---|
[Java][프로그래머스] - LVL.0 배열 자르기 (0) | 2023.01.24 |
[Java][프로그래머스] - LVL.0 삼각형의 완성조건(1) (0) | 2023.01.24 |
[Java][프로그래머스] - LVL.0 배열 뒤집기 (1) | 2023.01.23 |
[Java][프로그래머스] - LVL. 0 문자열 뒤집기 (1) | 2023.01.22 |