[백준] 2143번 : 두 배열의 합
2143번: 두 배열의 합 2143번: 두 배열의 합 첫째 줄에 T(-1,000,000,000 ≤ T ≤ 1,000,000,000)가 주어진다. 다음 줄에는 n(1 ≤ n ≤ 1,000)이 주어지고, 그 다음 줄에 n개의 정수로 A[1], …, A[n]이 주어진다. 다음 줄에는 m(1 ≤ m ≤ 1,000)이 주어지고, 그 www.acmicpc.net 🤔 문제분석 누적합 + 이분탐색 문제로 누적합의 경우의 수를 모두 구한다음에 하나의 누적합을 순회하면서 다른 하나의 누적합의 경우의 수를 정렬한뒤 이분탐색하여 값을 찾아낸다. 이분탐색을 통하여 좌측 index와 우측 index 를 구한뒤에 (우측 - 좌측)을 통하여 해당 값이 몇개가 있는지 알 수 있다. 💻 코드 import sys import bisect..
[백준] 2141번 : 우체국
2141번: 우체국 2141번: 우체국 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 X[1], A[1], X[2], A[2], …, X[N], A[N]이 주어진다. 범위는 |X[i]| ≤ 1,000,000,000, 1 ≤ A[i] ≤ 1,000,000,000 이며 모든 입력은 정수이다. www.acmicpc.net 🤔 문제분석 그리디 유형 문제로 마을의 위치 기준으로 오름차순 정렬한뒤에 사람의 수를 더해가면서 (모든 마을사람들의 수 / 2) 보다 커질경우 그 마을은 우체국의 위치가 된다. 마을 사람들이 절반이 되었을때가 우체국의 최적의 위치가 된다. 💻 코드 import sys input = sys.stdin.readline N = int(input()) village =..