Algorithm/kotlin

[프로그래머스/Kotlin] 머쓱이보다 키 큰 사람 (Lv. 0)

나연쓰 2024. 2. 6. 16:48

문제

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

 

제한사항

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

 

입출력 예

 

코드

1. 반복문

class Solution {
    fun solution(array: IntArray, height: Int): Int {
        var answer: Int = 0
        array.sort()
        
        for(i in array){
            if(i > height){
                break
            }else{
                answer++
            }
        }
        println(answer)
        return array.size - answer
    }
}

 

 

2. 이분 탐색

class Solution {
    fun solution(array: IntArray, height: Int): Int {
        var answer: Int = 0
        array.sort()
        
        var start: Int = 0
        var end: Int = array.size - 1
        var mid: Int = 0
        
        while(start <= end){
            mid = (start + end) / 2
            
            if(array[mid] > height){
                end = mid - 1
                answer = end
            }else{
                start = mid + 1
            }
        }
        return array.size - start
    }
}

 

이분 탐색으로 풀었을 때는 기억 상 1.x ms가 나왔던 것 같다.

 

기록하고 싶은 부분

  • 배열 정렬
array.sort()
  • 배열 역정렬
array.reserve()
  • 배열 크기
array.size

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120585

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr