일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 반공변성
- webpack
- 태그된 유니온
- ESlint
- app router
- 공변성
- map
- SSR
- Jest
- useAppDispatch
- RTK Query
- React
- autosize
- 리터럴 타입
- 호이스팅
- TS
- 결정 알고리즘
- tailwind
- Cypress
- 인터섹션
- 투포인터
- async/await
- CORS
- recoil
- 이분 검색
- dfs
- CI/CD
- 타입 좁히기
- Promise
- 무한 스크롤
Archives
- Today
- Total
짧은코딩
2012 등수매기기 본문
반응형
https://www.acmicpc.net/problem/2012
내 풀이(맞음)
import heapq
n = int(input())
ary = []
for i in range(n):
x = int(input())
ary.append(x)
count = 0
heapq.heapify(ary)
j = 1
for i in range(n):
if(ary[0] == j):
heapq.heappop(ary)
j += 1
continue
else:
count += abs(ary[0] - j)
heapq.heappop(ary)
j += 1
print(count)
리스트를 힙으로 전환하고 ary[0]으로 최소값을 항상 구한다. 만약 1 1 2 5 5가 입력되면 처음에 1이 나오고 제대로 자리에 있어서 괜찮다. 하지만 두번째 1은 2등 자리에 있어서 불만도가 1이 쌓인다. 이런식으로 문제를 풀었다. 힙을 쓰지 않았을땐 시간 초과가 나왔다. 그리고 PyPy3로 제출하니까 정답이었다.
반응형
'코딩 테스트(Python) > 백준, 프로그래머스' 카테고리의 다른 글
1449 수리공 항승 (0) | 2022.01.20 |
---|---|
1946 신입사원 (0) | 2022.01.20 |
15903 카드 합체 놀이 (0) | 2022.01.18 |
2847 게임을 만든 동준이 (0) | 2022.01.18 |
1715 카드정렬하기(heap 활용) (0) | 2022.01.18 |
Comments