백준 15903(Python) 풀이 : 카드 합체 놀이



백준 15903 문제

백준 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))



CATEGORIES:

Tags:

No Responses

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다