일상 코딩
[python] 백준 10989번 수 정렬하기 3, 계수 정렬 및 readline() 함수 적용. 본문
코딩테스트/백준 online Judge
[python] 백준 10989번 수 정렬하기 3, 계수 정렬 및 readline() 함수 적용.
polarcompass 2021. 11. 9. 22:05728x90
https://www.acmicpc.net/problem/10989
import sys
lst = [0] * 10001
N = int(sys.stdin.readline())
for _ in range(N):
lst[int(sys.stdin.readline())] += 1
cnt = 0
for i in range(10001):
if lst[i] != 0:
for _ in range(lst[i]):
print(i)
cnt += 1
if cnt == N:
exit(0)
입력 예시
10
5
2
3
1
4
2
3
5
1
7
출력 예시
1
1
2
2
3
3
4
5
5
7
일반적인 정렬 알고리즘 사용시 숫자가 많으면 속도가 느리기에
다이나믹 프로그래밍 기법으로 메모이제이션으로 리스트 index에 입력받은 수를 대입하여 1씩 더해주는 방법으로
출력시 for문을 돌려 입력 받은 개수 만큼 출력을 해준다.
또한 python 내장 함수인 input()은 속도가 느리므로
sys.stdin.readline()을 적용해준다.
728x90
'코딩테스트 > 백준 online Judge' 카테고리의 다른 글
[python] 백준 알고리즘 7490번 0 만들기, 중복순열 풀이법 (0) | 2021.11.11 |
---|---|
[python] 백준 알고리즘 1074번 Z, 다이나믹 프로그래밍 풀이법 (0) | 2021.11.10 |
[python] 백준 알고리즘 5397번 키로거, 문자열 풀이 (0) | 2021.11.07 |
[python] 백준 알고리즘 1966번 프린터 큐, 튜플 사용없는 풀이 (0) | 2021.11.06 |
[python] 백준 알고리즘 1874번 스택 수열 풀이 (0) | 2021.11.05 |