문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
메모리 초과
# 수 정렬하기 3
from re import S
N = int(input())
sort = []
for i in range(N):
sort.append(int(input()))
sort.sort()
for _ in sort:
print(_)
정답 코드
# 수 정렬하기 3
from re import L
import sys
N = int(input())
check_list = [0]*10001
for i in range(N):
input_num = int(sys.stdin.readline())
check_list[input_num] = check_list[input_num] +1
print(check_list)
for i in range(10001):
if check_list[i] != 0:
for j in range(check_list[i]):
print(i)
1.시간복잡도 O(n)으로 하였음
2. 100001로 제한하였음
'CS > 알고리즘' 카테고리의 다른 글
백준 11651번 좌표 정렬하기 2 파이썬 풀이 (0) | 2022.03.03 |
---|---|
백준 2108 통계학 파이썬 풀이 (0) | 2022.03.01 |
백준 2750번 수 정렬하기 파이썬 풀이(삽입정렬 , 버블정렬) (0) | 2022.02.25 |
백준 1436번 영화감독 숌 파이썬 풀이 (0) | 2022.02.24 |
백준 1018 체스판 다시 칠하기 파이썬 풀이 (1) | 2022.02.23 |