-
[백준/파이썬] 수 정렬하기 3 10989알고리즘/문제풀기 2019. 7. 9. 14:15
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
나의 코드
실패
# 수 정렬하기 3 n = int(input()) num = [] for i in range(n): num.append(int(input())) num.sort() for i in num: print(i)
성공
# 수 정렬하기 3 import sys n = int(input()) num = [0]*10001 for i in range(n): num[int(sys.stdin.readline())] += 1 for i in range(1, 10001): for j in range(0,num[i]): print(i)
처음엔 위에 처럼 코드를 짰더니 메모리 초과가 발생했다.
이 문제는 입력에 주어진 갯수만큼 배열을 만든 다음 그 해당 인덱스(i)에 값(j)을 늘려주면서 저장하고
그 인덱스(i)에 해당하는 값(j)만큼 인덱스(i)를 출력해주면 된다.
'알고리즘 > 문제풀기' 카테고리의 다른 글
[백준/파이썬] K번째 수 11004 (0) 2019.07.09 [백준/파이썬] 카드 11652 (0) 2019.07.09 [백준/파이썬] 국영수 10825 (0) 2019.07.09 [백준/파이썬] 나이순 정렬 10814 (0) 2019.07.09 [백준/파이썬] 좌표 정렬하기 (0) 2019.07.08 댓글