본문 바로가기

알고리즘/python

[python/파이썬] 백준 14400 편의점 2

반응형

[문제 출처]

https://www.acmicpc.net/problem/14400

 

14400번: 편의점 2

영선이는 이번에 편의점으로 창업을 하려고 계획 중이다. 이번 창업을 위해 많은 준비를 하고 있는데, 아직 편의점을 세울 위치를 결정을 하지 못했다. 영선이는 미리 시장조사를 하여, 주요 고

www.acmicpc.net

 

[문제 풀이]

 

고객들의 좌표를 입력받고 x값을 기준으로 오름차순 혹은 내림차순으로 정렬하여 x좌표 중에 중간값을 찾고,

y값을 기준으로 정렬하여 y좌표 중에 중간값을 찾아서 그 위치에 편의점을 세웠을 때 거리의 합이 최소가 된다.

 

import sys
input = sys.stdin.readline

n = int(input())

customer = []
for _ in range(n):
    x, y = map(int, input().split())
    customer.append([x,y])

tmp = sorted(customer, key=lambda x:x[0])
x = tmp[n//2][0]

tmp = sorted(customer, key=lambda x:x[1])
y = tmp[n//2][1]

result = 0

for i in range(n):
    result += (abs(x - customer[i][0]) + abs(y - customer[i][1]))

print(result)
반응형