백준 15903 문제

백준 15903 풀이
나는 그냥 정렬 시키고, 가장 작은 두 개의 값을 더하고, 재할당하고, 다시 정렬하는 것을 반복해서 풀었다.
하지만 사실 이 문제는 이렇게 대충 푸는 것이 아니라, 자료구조에 대한 이해를 바탕으로 시간 복잡도를 줄이는 풀이를 했어야하는 것 같다.
문제는 아직 나는 자료구조가 너무 이해가 안되기 때문에 … 일단 다음으로 기약하려고 한다.
# 1946
# 입력
n, m = map(int, input().split())
cards = list(map(int, input().split()))
# 오름차순 정렬
cards.sort()
# 반복 돌리며 합치기
for _ in range(m):
sum_cards = cards[0] + cards[1]
cards[0], cards[1] = sum_cards, sum_cards
cards.sort()
# 결과값 출력
print(sum(cards))
No Responses