Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 프로그래밍공부
- boj 5567
- PCCE
- root signature
- 코드트리 고대 문명 유적 탐사
- 렌더링 파이프
- directx 그래픽스
- DirectX12
- 고대 문명 유적 탐사
- pcce 기출문제 9번 지폐 접기
- pcce 기출문제 풀이
- c++ 5567
- 잔디 기부
- pcce 기출문제 10번 공원 풀이
- pccp 기출문제 풀이
- 수식 복원하기
- depth-stencil
- boj 1991
- c++ 1991
- texture mapping
- 백준 5567
- pcce 기출문제 10번 공원
- 잔디 기부 캠페인
- 오블완
- python 고대 문명 유적 탐사
- constant buffre
- DirectX
- pcce 기출문제 10번 지폐 접기 풀이
- gemmasprint
- 티스토리챌린지
Archives
- Today
- Total
오구의코딩모험
[Python] 수 정렬하기, 수 정렬하기 2 본문
반응형
문제 3줄 요약
1. N개의 수를 오름차순으로 출력한다.
2. 수는 중복되지 않는다.
3. 왼쪽 문제는 N이 1000이하, 오른쪽 문제는 N이 100만 이하이다.
같은 기능을 하는 문제지만,
Input으로 들어올 수 있는 사이즈가 다른 문제였다.
두 문제 모두
python 리스트의 sort로 푼 코드들이 있는 것 같다.
python sort 함수 Timsort라는 정렬 알고리즘을 사용하는데
Quicksort와 같이 평균 시간 복잡도가 O(NlogN) 이지만,
최악의 경우는 더 빠른 O(NlogN) 이라고 합니다.
https://realpython.com/sorting-algorithms-python/#the-timsort-algorithm-in-python
때문에 sort를 사용해도 되지만!
오름차순 하니 딱 떠오르는 자료구조,
heapq 자료구조를 사용하여 값을 오름차순으로 출력하였다.
from sys import stdin
import heapq
if __name__ == "__main__":
N = int(stdin.readline())
num_q = []
for _ in range(N):
heapq.heappush(num_q, int(stdin.readline()))
while(len(num_q) != 0):
print(heapq.heappop(num_q))
heapq는 완전이진트리를 사용하여
값을 추가, 삭제하기 때문에 시간복잡도는 리스트보다 느린 O(logN)입니다.
하지만 오름차순으로 정렬되어 저장하는 자료구조 이기 때문에
문제에서 필요한 오름차순 기능과 시간 제한에는 충분합니다!
끝!
반응형
'프로그래밍 공부 > 백준 알고리즘' 카테고리의 다른 글
[Python] 1874번 : 스택 수열 (0) | 2023.03.01 |
---|---|
[Python] 10989번 : 수 정렬하기 3 (0) | 2023.02.25 |
[Python] 10026번 : 적록색약 (0) | 2023.02.24 |
[Python] 1202번 : 보석 도둑 (0) | 2023.02.23 |
[Python] 2981번 : 검문 (0) | 2023.02.23 |
Comments