요구능력
이분탐색
문제풀이
시간을 이용하여 이분탐색을 진행한다.
맨처음은 0분으로 설정했고, 가장 오래걸리는 시간은 times배열에서 심사하는데 가장오래걸리는사람 * n을 해주면된다.
left와 right를 비교해가며 이분탐색을 진행한다.
후기
이분탐색은 처음써보는데 쓸만한 알고리즘인거같다.
코드
import Foundation
func solution(_ n:Int, _ times:[Int]) -> Int{
let time = times.sorted()
var left = 0
var right = n * time.last!
while left <= right{
let mid = (left + right) / 2
var people = 0
for i in time{
people += (mid / i)
}
if people >= n{
right = mid - 1
}else if people < n{
left = mid + 1
}
}
return left
}
'Algorithm > 문제풀이_프로그래머스' 카테고리의 다른 글
[Swift][프로그래머스][BFS] 거리두기 확인하기 (0) | 2022.05.04 |
---|---|
[Swift][프로그래머스][브루트포스] 괄호 변환 (0) | 2022.05.03 |
[Swift][프로그래머스][DP] N으로 표현 (0) | 2022.05.02 |
[Swift][프로그래머스][그래프] 가장 먼 노드 (0) | 2022.05.02 |
[Swift][프로그래머스][해시] 메뉴 리뉴얼 (0) | 2022.04.27 |
댓글