-
[백준] 10989 수 정렬하기백준 Online Judge 2021. 8. 30. 21:22
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제 해설
- 수 정렬 하기 (N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.)
- 계수 정렬 알고리즘 (Counting Sort) : 수의 범위가 제한적일 때 사용 가능하다.
- 각 각의 인덱스를 값으로 보는 정렬 알고리즘.
- 데이터가 등장한 횟수를 세는 알고리즘.
- 데이터 갯수가 많을 때는 sys.stdin.readline()을 이용한다.
- 참고로, 쥬피터 노트북에서는 sys.stdin.readline() 사용 불가다.
import sys n = int(sys.stdin.readline()) array = [0] * 10001 for i in range(n): data = int(sys.stdin.readline()) array[data] += 1 for i in range(10001): if array[i] != 0: for j in range(array[i]): print(i)
GitHub - DAWUNHAN/Algorithms-and-DataStructure: Algorithms and DataStructure with Python
Algorithms and DataStructure with Python. Contribute to DAWUNHAN/Algorithms-and-DataStructure development by creating an account on GitHub.
github.com
[ 패스트캠퍼스 알고리즘 / 기술면접 완전 정복 올인원 패키지 Online ] 강의 내용을 정리한 자료입니다.
'백준 Online Judge' 카테고리의 다른 글
[백준] 1074 z (재귀 함수) (0) 2021.08.31 [백준] 2747 피보나치 수열 (0) 2021.08.31 [백준] 11650 좌표 정렬하기 (0) 2021.08.30 [백준] 10814 나이 순으로 정렬하기 (0) 2021.08.27 [백준] 1427 숫자 내림차순 정렬 (0) 2021.08.27