온도 충격 최대로
문제
냉동 창고가 N개 있고, 1번부터 N번까지 번호가 붙어 있다. 각 창고에는 설정 온도가 정해져 있다. 설정 온도는 영하로 내려갈 수 있으므로 음수일 수 있다.
점검원은 N개의 창고를 한 번씩 모두 방문한다. 방문 순서는 점검원이 마음대로 정할 수 있다. 어떤 창고에서 다음 창고로 옮겨 갈 때, 두 창고의 설정 온도 차이의 절댓값만큼 점검원이 들고 다니는 온도계가 충격을 받는다. 한 순서로 전부 방문했을 때 받는 충격의 총 합은 연달아 방문한 두 창고의 온도 차이의 절댓값을 모두 더한 값이다. 첫 창고에 들어갈 때와 마지막 창고에서 나올 때는 충격이 없다.
지금은 온도계가 얼마나 버티는지 시험하는 중이라서, 충격의 총 합이 최대가 되는 순서로 방문하려고 한다. N개 창고의 설정 온도가 주어졌을 때, 받을 수 있는 충격의 총 합의 최댓값을 계산하는 프로그램을 작성하여라.
예를 들어 N=3개 창고의 설정 온도가 다음의 표와 같다고 해보자.
| 창고 | 1 | 2 | 3 |
|---|---|---|---|
| 설정 온도 | -1 | -49 | -18 |
두 창고를 연달아 방문할 때 받는 충격은 다음과 같다.
| 연달아 방문한 두 창고 | 1번과 2번 | 1번과 3번 | 2번과 3번 |
|---|---|---|---|
| 충격 | 48 | 17 | 31 |
세 창고를 방문하는 순서는 모두 여섯 가지다. 각 순서에서 받는 충격의 총 합은 다음과 같다.
| 방문 순서 | 계산 | 합 |
|---|---|---|
| 1번, 2번, 3번 | 48 + 31 | 79 |
| 1번, 3번, 2번 | 17 + 31 | 48 |
| 2번, 1번, 3번 | 48 + 17 | 65 |
| 2번, 3번, 1번 | 31 + 17 | 48 |
| 3번, 1번, 2번 | 17 + 48 | 65 |
| 3번, 2번, 1번 | 31 + 48 | 79 |
가장 큰 합은 79다. 가운데에 가장 낮은 온도인 2번 창고를 두어야 양쪽으로 큰 차이를 두 번 쓸 수 있기 때문이다. 따라서 이 예시에서의 정답은 79다.
입출력 예시
예시 1
입력
3 -1 -49 -18
출력
79
예시 2
입력
4 85 92 79 86
출력
27
예시 3
입력
6 20 1 15 8 4 10
출력
62
입력 조건
가장 먼저 창고의 수 N이 자연수로 주어진다. N은 3 이상 8 이하의 자연수다.
이어서 1번부터 N번까지 창고의 설정 온도가 한 줄에 공백으로 구분되어 차례대로 주어진다. 각 설정 온도는 -100 이상 100 이하의 정수이며, 영하인 창고는 음수로 주어진다. 설정 온도가 서로 같은 창고가 있을 수 있고, 모든 창고의 설정 온도가 같을 수도 있다.
출력 조건
받을 수 있는 충격의 총 합의 최댓값을 한 줄에 하나의 수로 출력한다. 모든 창고의 설정 온도가 같다면 이 값은 0이 된다.
요구사항
- N개의 창고를 한 번씩 모두 방문합니다
- 연달아 방문한 두 창고의 설정 온도 차이의 절댓값을 모두 더한 값이 충격의 총 합입니다
- 첫 창고에 들어갈 때와 마지막 창고에서 나올 때는 충격을 세지 않습니다
- 방문 순서를 모두 따져서 충격의 총 합이 최대가 되는 값 하나만 출력합니다
- 표준 입력으로 읽고 표준 출력으로 내보내는 프로그램을 짜야 합니다
- 쓸 수 있는 말은 파이썬, 자바스크립트입니다
- 메모리 제한은 256MB입니다. 브라우저에서는 재지 않고 적기만 합니다
- 시간 제한은 출제자의 정답 코드를 같은 런타임에서 재서 정합니다
- 이 문제는 프롬프트가 아니라 코드를 냅니다. 그 코드는 이 기기의 브라우저에서 돌고, 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다. 실행 시간은 각자 기기가 적어 보내는 값이라, 코드와 기기 정보를 순위표에 같이 내걸어 둡니다.
- 출력이 글자 하나까지 기대값과 같아야 합니다. 줄 안의 빈칸은 다른 글자와 똑같이 봅니다.
- 케이스는 15개이고, 그 가운데 3개는 입력과 기대 출력을 함께 보여 줍니다. 나머지는 제출할 때만 쓰이고 화면에는 보여 주지 않습니다.
- 케이스 15개를 전부 통과해야 해결입니다.
예시
공개 케이스 3개입니다. 채점에는 숨은 케이스가 함께 쓰입니다. 케이스 15개를 전부 통과해야 해결입니다.
3 -1 -49 -18
79
4 85 92 79 86
27
6 20 1 15 8 4 10
62
풀이
코드는 이 기기에서돕니다. 서버로는 나온 출력의 지문과 걸린 시간만 갑니다. 맞았는지는 서버가 정합니다.
제출은 로그인 하셔야 됩니다. 공개 케이스로 돌려보는 것은 로그인 없이도 됩니다.
공개 케이스 3개로 돌려보기가 됩니다. 제출하면 숨은 케이스까지 돕니다.
이 문제를 푼 사람
아직 없습니다. 첫 번째가 되실 수 있습니다.