문제풀이/이분탐색

2417번: 정수 제곱근 정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오. www.acmicpc.net 코드 n = int(input()) s, e = 0, n ans = 0 while s
3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 www.acmicpc.net 코드 n = int(input()) a = sorted(list(map(int, input().split()))) x = int(input()) ans = 0 for i in range(n): s, e = i+1, n-1 while s
14575번: 뒤풀이 첫째 줄에 대회 참가자의 수 N과 술의 총량 T가 주어진다. (1 ≤ N ≤ 1000, 1 ≤ T ≤ 109) 둘째 줄부터 N개의 줄에 걸쳐, 각 사람에 대한 Li와 Ri값이 주어진다. (1 ≤ Li ≤ Ri ≤ 106) www.acmicpc.net 코드 n, t = map(int, input().split()) alcohol = [list(map(int, input().split())) for _ in range(n)] s, e = 1, int(1e9) ans = int(1e9) while s mid: low = -1 break low += alcohol[i][0] high += min(mid, alcohol[i][1]) if low == -1 or high < t: s = mid..
1166번: 선물 민식이는 아이들에게 선물할 같은 크기의 작은 박스를 N개 가지고 있다. 모든 작은 박스는 정육면체이고, 크기는 A × A × A 이다. 민식이는 이 작은 박스를 크기가 L × W × H 인 직육면체 박스에 www.acmicpc.net 코드 n, l, w, h = map(int, input().split()) s, e = 0, max(l, w, h) ans = 0 for _ in range(100): mid = (s+e)/2 boxes = (l//mid)*(w//mid)*(h//mid) if boxes < n: e = mid else: ans = mid s = mid print(ans) 이분탐색의 시간복잡도는 $O(logN)$으로 0~1,000,000,000 범위를 탐색한다면 반복문을 1..
17124번: 두 개의 배열 정수 배열 A 와 B가 있다. A는 총 n개의 서로 다른 양의 정수를 포함하고 B는 총 m개의 서로 다른 양의 정수를 포함한다. A, B를 이용해서 길이가 n인 새로운 배열 C를 만들어보자. C[i] 는 배열 B에 있 www.acmicpc.net 문제 정수 배열 A 와 B가 있다. A는 총 n개의 서로 다른 양의 정수를 포함하고 B는 총 m개의 서로 다른 양의 정수를 포함한다. A, B를 이용해서 길이가 n인 새로운 배열 C를 만들어보자. C[i] 는 배열 B에 있는 값 중 A[i] 에 가장 가까운 값 (절대값 차이가 가장 작은 값)으로 정의 된다. 만약 이 조건을 만족하는 값들이 여럿 있는 경우, 그 중 가장 크기가 작은 값으로 정의 된다. 예를 들어 A = [20, 5, ..
딜레이레이
'문제풀이/이분탐색' 카테고리의 글 목록 (2 Page)