728x90
반응형

binary search 3

[Baekjoon 1654 / Python / 실버2] 랜선 자르기

이분 탐색 문제이다. 늘 결과 도출 부분에서 묘하게 헷갈린다. # 실버2 -> 이분 탐색"""K : 이미 가지고 있는 랜선의 개수N : 만들어야 할 랜선의 개수data[] : K개 랜선 리스트start : 1 -> 랜선 최소 길이end : max(data) -> 랜선 최대 길이- 랜선 길이를 기준으로 이분 탐색 실시- 반복할 때 마다 조건 검사    -> 해당 길이로 N개 랜선 제작이 가능한지    -> 모든 랜선을 일일이 길이로 나눠 총 랜선 개수 세기- 최대값을 찾아야 하므로 end 출력"""import sysinput = sys.stdin.readlineK, N = map(int, input().split())data = [int(input()) for _ in range(K)]start = 1en..

[Baekjoon 3079 / Python / 골드5] 입국심사

이분 탐색 문제이다. 일반적인 이분 탐색의 틀에서 크게 벗어나지 않는다.다만 start와 end의 초기 설정 및 mid값의 유효성을 어떻게 판단할지에 대해서 고민이 좀 필요했다.  # 이분 탐색import sysinput = sys.stdin.readlineN, M = map(int, input().split())test = [int(input()) for _ in range(N)]# 이분 탐색def binarySearch():    start = min(test)    end = max(test) * M    result = end    while start end:        mid = (start + end) // 2        total = 0        # 임의의 시간(mid) 동안 몇명..

[Baekjoon 2110 / Python / 골드4] 공유기 설치

import sysinput = sys.stdin.readline# 집, 공유기 개수N, C = map(int, input().split())house = [int(input()) for _ in range(N)]  # 집 좌표house.sort() # 집을 순서대로 정렬# 이분 탐색으로 인접 공유기 간의 최소 거리를 찾는다def binarySearch():    end = house[-1] - house[0] # 최대 거리    if C == 2:        return end    start = 1 # 최소 거리    result = 0 # 결과를 저장할 변수    # 최적의 거리를 찾을 때까지 반복한다    while start end:        cur = house[0] # 마지막으로 공유..

728x90
반응형