본문 바로가기

프로그래머스 - 코딩테스트

[Java][프로그래머스] - LVL.0 머쓱이보다 키 큰 사람


정답 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 형번환은 필수!!