문제 요약: 서강헬스클럽은 PT 한번당 운동기구 두개만 사용 가능. 겹치지 않게 모두 한번씩 사용(홀수인 경우, 마지막 PT에서는 하나의 기구만)
운동기구마다 근손실 정도가 다르고, 근손실의 최솟값(M)을 구하라.
INPUT : 운동기구의 갯수// 운동기구의 근손실을 나타내는 정수
OUTPUT: M의 최솟값
이전 문제(Project Teams) 와 다른 것은, 이전은 MIN이 MAX가 되도록 구하는 것이었는데,
이번 문제는, MAX가 MIN이 되도록 구하는 것이라는 점이다.
def solve(N, items):
items = sorted(items)
groups = []
if N%2==1:
groups=[[items[i],items[N-2-i]] for i in range(N//2)]+[[items[-1]]]
else: groups=[[items[i], items[N-1-i]] for i in range(N)]
groups = [sum(x) for x in groups]
return max(groups)
if __name__=='__main__':
N = int(input())
items = list(map(int,input().split()))
print(solve(N, items))
'공부하는 것들 > 알고리즘' 카테고리의 다른 글
백준 20363번 : 당근 키우기(그리디) (0) | 2021.08.23 |
---|---|
백준 20937번: 떡국(그리디) (0) | 2021.08.22 |
백준 20044 : Project teams(그리디) (0) | 2021.08.22 |
백준 16162 : 가희와 3단 고음(그리디) (0) | 2021.08.22 |
백준 13413번 : 오셀로 재배치(그리디) (0) | 2021.08.22 |