본문 바로가기
Study/Algorithm

[Algorithm]Programmers_43238_입국심사_Go

by _royJang 2021. 9. 15.

문제 링크

입국심사 : 링크

문제 풀이

  1. 입국심사를 진행하는 심사원들을 작업이 걸리는 시간을 기준으로 오름차순으로 정렬한다.
  2. 시간을 기준으로 이분탐색을 진행한다.

코드

package q43238

import (
    "fmt"
    "sort"
)

func binarySearch(n int, times []int) int64 {
    sort.Ints(times)
    left := 1
    right := n * times[len(times)-1]
    answer := 0
    for left < right {
        middle := ((left + right) / 2)
        tmp := 0
        for _, val := range times {
            tmp += middle / val
        }
        if tmp < n {
            left = middle + 1
        } else if tmp >= n {
            answer = middle

            right = middle - 1
        } else {
            break
        }

    }
    return int64(answer)
}

func solution(n int, times []int) int64 {
    return binarySearch(n, times)
}

func Start() {
    times := []int{7, 10}
    fmt.Println(solution(6, times))
}

Go 1~2주 안썼다고 간단한것들이 기억이 안난다. Go를 통한 알고리즘 풀이 빈도를 늘려야지. Go...