코딩 테스트/탐색7 [백준] 2805번 나무 자르기 import sys n,m = map(int, sys.stdin.readline().split()) array = list(map(int, sys.stdin.readline().split())) start = 0 end = max(array) while start 0: result += i - mid if result < m: # 필요한 길이보다 result가 작으므로, 잘린 나무가 더 길어져야 한다. end = mid - 1 else: start = mid + 1 print(end) 입출력은 동일했으나, 시간초과 결과가 나왔다. import sys n,m = map(int, sys.stdin.readline().split()) array = list(map(int, sys.stdin.readline().. 2023. 7. 25. [백준] 1654번 랜선 자르기 이진 탐색을 이용해서 랜선이 조건을 만족하는 최대 길이를 구해야 한다. N개의 랜선을 만들어야 하므로, mid를 기준으로 랜선을 자를때 나오는 count값을 세어서, count 값이 N개의 값보다 더 크다면, 더 랜선의 길이를 늘릴 수 있으므로, start = mid + 1로 조건을 바꾼다. count 값이 N개의 값보다 더 작다면, 랜선의 길이를 줄여야 하므로, end = mid - 1로 조건을 바꾼다. k, n = map(int, input().split()) array =[] for i in range(k): array.append(int(input())) start = 1 end = max(array) while(start = n: start = mid + 1 else: end = mid - 1 .. 2023. 7. 24. 탐색 문제 풀이 2023. 7. 23. 이전 1 2 다음