n개의 수를 정렬해서 차례대로 출력하는 문제이다.
요구사항들은 다음과 같다.
풀이 과정은 다음과 같다.
수의 범위가 적을 때는 이렇게 dict를 사용해서 특별한 sort를 사용할 수 있다. 얼핏 듣기만 했는데 실제로 문제로 풀어보니 처음에 다르게 접근했다가 생각해낼 수 있었다. 나중에 응용하는 문제도 풀어봐야 겠다.
import sys
import collections
n = int(sys.stdin.readline().strip())
numbers = collections.defaultdict(lambda : 0)
for _ in range(n):
number = int(sys.stdin.readline().strip())
numbers[number] += 1
for number in range(1, 10001):
for _ in range(numbers[number]):
print(number)
import sys
import collections
n = int(sys.stdin.readline().strip())
numbers = collections.defaultdict(lambda : 0)
for _ in range(n):
number = int(sys.stdin.readline().strip())
numbers[number] += 1
for number in sorted(numbers.keys()):
for _ in range(numbers[number]):
print(number)