반응형
https://www.acmicpc.net/problem/14487
n = int(input())
num = list(map(int, input().split()))
max_num = max(num)
num.remove(max_num)
print(sum(num))
이번 문제는 모든 마을을 다 갈 수 있는 최단 거리를 구하는 문제입니다. 사실 최단거리라고 말하기도 좀 그런게 마을은 전부 섬 외곽에 위치해있고 다른 마을로 이동하기 위해서는 무조건 섬 외곽을 따라서 걸어야 하기 때문에 모든 마을을 다 가보려면 거의 한 바퀴를 돌아야 하죠(시작했던 마을은 다시 갈 필요 없으니 딱 한 구간은 무조건 가지 않게 됨). 즉 최단거리를 구하려면 가장 거리가 먼 구간 하나를 빼고 섬을 한 바퀴 돌면 되는 겁니다. 그래서 리스트 내 최대값을 찾아서 빼고 리스트의 합을 구하면 그게 정답이 되겠죠.
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
[BOJ][Python]18238 풀이 (0) | 2023.01.17 |
---|---|
[BOJ][Python]22864 풀이 (0) | 2022.12.31 |
[BOJ][Python]2864 풀이 (0) | 2022.12.29 |
[BOJ][Python]5585 풀이 (0) | 2022.12.28 |