Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- Brightics
- 직원 이직률
- 데이터 분석
- 데이터분석
- 삼성SDS
- Brightics를 이용한 분석
- 삼성SDS Brigthics
- 삼성SDS Brightics
- 혼공
- 추천시스템
- 영상제작기
- 혼공학습단
- Brigthics
- 노코드AI
- 혼공머신러닝딥러닝
- 모델링
- Brigthics를 이용한 분석
- 팀 분석
- 브라이틱스
- 개인 의료비 예측
- Brigthics Studio
- Brightics Studio
- 포스코 청년
- 직원 이직여부
- 브라이틱스 서포터즈
- 포스코 아카데미
- 혼공머신
- 삼성 SDS
- 삼성 SDS Brigthics
- 캐글
Archives
- Today
- Total
데이터사이언스 기록기📚
[백준/Python] 2141번(그리디)_우체국 본문
📌문제 유형
그리디, 정렬(골드 Lv.4)
📌문제
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
📌나의 문제풀이
- (시간초과로 실패) 전체를 다 순회 함
n = int(input())
total = []
for _ in range(n):
total.append(list(map(int, input().split())))
total.sort(key = lambda x : -x[1])
result = []
cnt = 0
# max_idx까지만 반복
while cnt < len(total):
ans = 0
now_town = total[cnt][0]
for j in range(len(total)):
ans += (abs(total[j][0] - now_town) * total[j][1])
result.append([now_town, ans])
cnt += 1
result.sort(key = lambda x:x[1])
print(result[0][0])
📌 다른사람의 문제풀이
-아이디어 : 누적 인구수가 절반을 넘어가는 지점 찾기
- 이유 : 인구가 많으면 많을수록 거리값이 가산되기 때문에, 인구 수가 중요한 문제
import sys
input = sys.stdin.readline
villiage = []
all_people = 0
N = int(input())
for i in range(N):
n_viliage, people = map(int, input().split())
villiage.append([n_viliage, people])
all_people += people
villiage.sort(key= lambda x: x[0])
count = 0
for i in range(N):
count += villiage[i] [1]
if count >= all_people/2:
print (villiage[i][0])
break
📌 리뷰 및 참고
[백준] 2141번 우체국 (파이썬)
문제에서 요구하는 핵심은 어떤 한 마을에 우체국이 세워진다 가정할 때, 다른 마을 사람들이 우체국이 세워진 마을에 가기 위해 필요한 거리의 합이 최소가 되는 마을 번호를 찾는 것이다. 크
roytravel.tistory.com
[백준 2141번] 우체국(파이썬)
https://www.acmicpc.net/problem/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, 0 ≤ A[i] ≤ 1,000,000,000
door-of-tabris.tistory.com
- 어떤 걸 곱하는지, 곱하면 커지는 값이 무엇인지 생각해보기
728x90
'Coding Test > 백준(Python)' 카테고리의 다른 글
[백준/Python] 25195번(DFS)_Yes or yes (0) | 2024.02.09 |
---|---|
[백준/Python] 2109번(그리디)_순회강연 (0) | 2023.11.13 |
[백준/Python] 10271번(완탐)_고층 건물 (0) | 2023.10.09 |
[백준/Python] 17471번(DFS)_게리맨더링 (0) | 2023.09.26 |
[백준/Python] 1967번(DFS)_트리의 지름 (0) | 2023.09.22 |
Comments