[CodingTest] 머쓱이보다 키 큰 사람

hye·2023년 3월 23일
0

AlgorithmTest

목록 보기
50/95

📖 Exam

문제 설명

머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요.

제한 조건

  • 1 ≤ array의 길이 ≤ 100
  • 1 ≤ height ≤ 200
  • 1 ≤ array의 원소 ≤ 200

입출력 예

arrayheightresult
[149, 180, 192, 170]1673
[180, 120, 140]1900
  • 입출력 예 #1
    149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다.

  • 입출력 예 #2
    180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다.


✍ Answer

class Solution {
    public int solution(int[] array, int height) {
        int answer = 0;
        for(int tall:array){
            if(tall>height){answer++;}
        }
        return answer;
    }
}

💡 Realization

  • 그냥 그런 문제

stream 사용

  • 효율성 따지는 댓글들은 볼 때마다 참 재미있다.
    • 값이 크고 연산이 고도화 되면 모르겠지만 가벼운 경우엔 독이죠.
    • 원시 타입의 경우 컴파일러 최적화 문제로 for-loop가 스트림에 비해 훨씬 빠르다고 합니다. 참조 타입의 경우도 for-loop가 조금 더 빠르다고 해요. 다만 순회하는 비용보다 연산하는 비용이 높아질 수록 Stream이 for-loop에 비해서 빨라진다고 하네요.
import java.util.Arrays;

class Solution {
    public int solution(int[] array, int height) {
        return (int) Arrays.stream(array).filter(value -> value > height).count();
    }
}

참고사이트:
https://school.programmers.co.kr/learn/courses/30/lessons/120585/solution_groups?language=java

profile
Junior Backend Developer

0개의 댓글