일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 투포인터
- useAppDispatch
- app router
- CORS
- 인터섹션
- 반공변성
- 호이스팅
- SSR
- ESlint
- RTK Query
- dfs
- async/await
- TS
- 이분 검색
- 공변성
- autosize
- webpack
- CI/CD
- tailwind
- recoil
- Cypress
- Promise
- React
- 타입 좁히기
- 무한 스크롤
- 결정 알고리즘
- 태그된 유니온
- Jest
- map
- 리터럴 타입
Archives
- Today
- Total
짧은코딩
1715 카드정렬하기(heap 활용) 본문
반응형
https://www.acmicpc.net/problem/1715
내가 푼 풀이(맞음)
import heapq
n = int(input())
heap = []
for i in range(n):
x = int(input())
heapq.heappush(heap, x)
result = 0
while(len(heap) != 1):
sum = 0
a = heap[0]
heapq.heappop(heap)
a += heap[0]
heapq.heappop(heap)
sum += a
result += sum
heapq.heappush(heap, sum)
print(result)
처음에 heap 안쓰고 list로 푸니까 시간 초과 떴었음, 그래서 heap으로 풀라는 힌트 살짝 보고 풀음
heap 쓸려면 import heapq 써야된다. 그리고 힙에 추가하려면 heapq.heappush(리스트 이름, 값)으로 한다.
그리고 힙의 0번째를 호출하면 무조건 최소값이 나온다. 하지만 1번째 자리가 그 다음으로 작은 값은 아니다. 그래서 heapq.heappop(리스트 이름)을 하면 가장 최소값이 삭제된다. 가장 최소값을 삭제하고 그 다음 최소값을 찾는다.
반응형
'코딩 테스트(Python) > 백준, 프로그래머스' 카테고리의 다른 글
15903 카드 합체 놀이 (0) | 2022.01.18 |
---|---|
2847 게임을 만든 동준이 (0) | 2022.01.18 |
2720 세탁소사장동혁 (0) | 2022.01.17 |
1049 기타줄 (0) | 2022.01.16 |
1543 문서검색 (0) | 2022.01.16 |
Comments