728x90
반응형
https://www.acmicpc.net/problem/20300
# Code
n = int(input())
pt = list(map(int,input().split()))
min = -1
pt.sort()
if n % 2 == 0: # 짝수면
while pt:
sum = pt[0] + pt[-1]
del pt[0]
del pt[-1]
if min < sum:
min = sum
else:
min = pt[-1]
del pt[-1]
while pt:
sum = pt[0] + pt[-1]
del pt[0]
del pt[-1]
if min < sum:
min = sum
print(min)
# Comment
처음엔 아무생각 없이 오름차순 정렬 한 후, n이 짝수면 첫번째 값과 마지막 값 더한 것을 출력하고 n이 홀수면 가장 큰 값인 맨 마지막 값을 출력하도록 했는데 바로 틀렸다. 1 3 8 9 처럼 1+9 와 3+8 중에 3+8이 더 큰 경우를 생각하지 않은 것이다... ㅎㅎ
n이 짝수일 경우 : sum은 pt[0](가장 적은 근손실량) + pt[-1](가장 큰 근손실량) -> 앞에서 계산해준 배열의 값들을 제거한 후 min값과 비교해서 min 값이 더 작을 경우에 sum 값으로 바꿔줌
n이 홀수일 경우 : min 값을 배열의 가장 마지막 값, 가장 큰 근손실량으로 정해주고 해당 값을 배열에서 제거함 -> n이 짝수일 때와 마찬가지로 sum 값 이용해서 min과 비교해서 min 값이 더 작을 경우에 sum 값으로 바꿔줌
=> 두 경우 모두 pt 배열에 값이 다 제거될 때 까지 반복!!
728x90
반응형
'백준 > 그리디' 카테고리의 다른 글
[백준] #1541 잃어버린 괄호 (python) (0) | 2022.03.07 |
---|---|
[백준] #1931 회의실 배정 (python) (0) | 2022.03.05 |
[백준] #11047 동전 0 (python) (0) | 2022.02.24 |
[백준] #20115 에너지 드링크 (python) (0) | 2022.02.21 |
[백준] #11399 ATM (python) (0) | 2022.02.21 |
댓글