본문 바로가기

BOJ/Python

[BOJ/백준] 5054 - 주차의 신 (Python)

문제

문제링크

가려고 하는 상점의 위치들이 주어질 때, 최소한으로 걷기 위한 주차 자리를 찾으려고 한다.

모든 상점을 방문하고 차로 되돌아오기 위해 걸어야 하는 최소 거리를 구하라.

 

풀이

최소한으로 걷기 위해서는 위치가 작은 것부터 큰 순 혹은 그 반대로 차례대로 방문해야 한다.

무작위로 주어진 위치를 sort()하고 'max값(가장 먼 곳) - min값(가장 가까운곳, 현 주차위치)'를 구한다.

이 값은 상점은 방문하기만 한 것이고 돌아오는 것에도 이와 동일한 거리가 필요하므로

총 최소 거리는 2*(max값-min값)이다.

 

코드

t=int(input())
for _ in range(t):
    n=int(input())
    pos=list(map(int, input().split()))
    pos.sort()
    print(2*(max(pos)-min(pos)))