https://www.acmicpc.net/problem/12845
12845번: 모두의 마블
영관이는 게임을 좋아한다. 별의별 게임을 다 하지만 그 중에서 제일 좋아하는 게임은 모두의 마블이다. 어김없이 오늘도 영관이는 학교 가는 버스에서 캐릭터 합성 이벤트를 참여했다. 이번 이
www.acmicpc.net
풀이
카드 합성을 통해 레벨만큼 골드를 벌 수 있다. 이 문제의 목표는 합성으로 벌 수 있는 골드의 최대값을 구하는 것이다.
카드 합성의 조건
1, 합성하려면 두 카드는 인접해야만 한다.
2, 업그레이드 된 카드의 레벨은 바뀌지 않는다.
주어진 카드 중 레벨이 제일 높은 카드를 찾아서 그 카드를 카드 A로 두고 나머지를 카드 B로 몰아서 합성해주면 된다.
아래 풀이에는 내림차순으로 리스트를 정렬해서 가장 큰 값을 찾아줬기 때문에 max 내장메서드로 찾아주어도 상관없다.
# 12845번 모두의 마블
N = int(input())
num = list(map(int, input().split()))
# 내림차순으로 정리
num = sorted(num, reverse = True)
total = 0
max = num[0]
if N == 1:
print(max)
else:
for i in range(1, N):
total += (max + num[i])
print(total)
'백준 > 그리디' 카테고리의 다른 글
[백준] 1969번 DNA - 파이썬 (0) | 2022.02.03 |
---|---|
[백준] 1946번 신입 사원 - 파이썬 (0) | 2022.02.02 |
[백준] 11399번 ATM - 파이썬 (0) | 2022.02.02 |
[백준] 10610번 30 - 파이썬 (0) | 2022.01.30 |
[백준] 2875번 대회 or 인턴 - 파이썬 (0) | 2022.01.29 |