728x90
리스트를 입력받아 내림차순으로 정리한 것과 오름차순으로 정리한 것의 각 요소들의 합중 최댓값이 답이다.
n이 짝수일때는 크게 문제가 되지 않는데 n이 홀수라면 생각을 좀 해야 한다.
내가 생각한 방법은 n이 홀수라면 운동기구를 하루만 사용하는 날 근손실이 최대로 일어나는 기구를 사용해야 한다.
이번 코드에는 zip이라는 함수를 처음으로 사용해보았다.
n = int(input())
muscle_re = list(map(int,input().split()))
muscle_re.sort(reverse = True) # 내림차순으로 정리
muscle = sorted(muscle_re, reverse = False) # 오름차순으로 정리
if n%2 == 0: #n이 짝수일때
result = 0
day_muscle = 0
for i,k in zip(muscle_re,muscle): #zip으로 묶어줘 요소들끼리 더한다
day_muscle = i + k
if result < day_muscle:
result = day_muscle
else:
del muscle_re[0] #리스트의 첫번째 요소를 제거
muscle_re.append(0) #리스트 마지막에 0을 추가
result = 0
day_muscle = 0
for i,k in zip(muscle_re,muscle): #짝수일때와 같은 방법으로 풀어준다.
day_muscle = i + k
if result < day_muscle:
result = day_muscle
print(result)
'Algorithm' 카테고리의 다른 글
백준 알고리즘 파이썬(Python) 2847번 게임을 만든 동준이 (0) | 2021.06.02 |
---|---|
백준 알고리즘 파이썬(Python) 20365번 블로그2 (0) | 2021.06.01 |
백준 알고리즘 파이썬(Python) 20115번 에너지드링크 (0) | 2021.05.14 |
백준 알고리즘 파이썬(Python) 11508번 2+1 세일 (0) | 2021.05.14 |
백준 알고리즘 파이썬(Python) 1758번 알바생 강호 (0) | 2021.05.09 |