[이분 탐색] 백준 실버3 2512번: 예산(Swift)
·
코테
https://www.acmicpc.net/problem/2512 2512번: 예산 첫째 줄에는 지방의 수를 의미하는 정수 N이 주어진다. N은 3 이상 10,000 이하이다. 다음 줄에는 각 지방의 예산요청을 표현하는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 값들은 모두 1 이상 www.acmicpc.net Code let n = Int(readLine()!)! var list = readLine()!.split(separator: " ").map { Int($0)! }.sorted(by:
[이분 탐색] 백준 실버2 2805번: 나무 자르기(Swift)
·
코테
https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 풀이과정 첫 시도는 주어진 나무 중 가장 높은 것을 기준으로 1씩 줄여가며 답을 탐색하였다. 역시, 시간 초과!! 런타임을 줄이기 위해선 탐색 횟수를 줄어야 한다. 때문에 하나씩 줄여가는 것이 아닌 중간 값을 탐색한다. 2번 예시에 따르면 가장 높은 나무는 46 절단기의 높이 최솟값은 0이므로 초기 max = 46 / min = 0 때문에 그에 중간값인 23..