반응형
코드
import sys
import math
n = int(input())
n_list = []
for _ in range(n):
a,b = map(int,sys.stdin.readline().split())
n_list.append([a,b])
n_list.sort()
cnt = 0
total = 0
for i in range(n):
total += n_list[i][1]
for a,b in n_list:
cnt+=b
if cnt >= math.ceil(total/2):
print(a)
break
설명
전체 인구의 절반 이상을 차지하는 마을에 설치하는 것이 가장 효율적이라고 한다..
마을 순서대로 오름차순 정렬을 하고 총 인구 수를 미리 구해놨다.
리스트에 넣어놓은 인구 수를 cnt에 차례대로 더하면서 총 인구수를 2로 나눈 값에 올림한 값과 비교하여 크거나 같으면 해당 마을 번호를 출력해줬다.
반응형
'알고리즘 > 그리디' 카테고리의 다른 글
[백준][Python] 13975번 파일 합치기 3 (0) | 2022.05.03 |
---|---|
[백준][Python] 2812번 크게 만들기 (0) | 2022.05.02 |
[백준][Python] 1092번 배 (0) | 2022.04.28 |
[백준][Python] 19598번 최소 회의실 개수 (0) | 2022.04.27 |
[백준][Python] 11509 풍선 맞추기 (0) | 2022.04.13 |
댓글