10989. 수 정렬하기 3
https://www.acmicpc.net/problem/10989
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
내 풀이 - 성공
from sys import stdin
import collections
N = int(stdin.readline())
nums = collections.defaultdict(int)
for i in range(N):
n = int(stdin.readline())
nums[n] += 1
nums = sorted(nums.items())
for k, v in nums:
for _ in range(v):
print(k)
nums 라는 딕셔너리를 이용해서 입력받은 숫자들의 개수를 저장
nums 의 key 를 기준으로 정렬 후 개수 만큼 print
다른 사람의 풀이
from sys import stdin
N = int(stdin.readline())
nums = [0]*10001
for i in range(N):
n = int(stdin.readline())
nums[n] = nums[n] + 1
for i in range(10001):
for j in range(nums[i]):
print(i)
sN 의 범위가 10,000 보다 작거나 같은 자연수라고 주어졌으므로
처음부터 nums 의 길이를 10001 로 잡음
인덱스를 숫자로, 배열의 값은 개수로 사용해서 입력받은 숫자의 개수를 모두 저장
10001 개의 숫자들을 모두 보면서 개수만큼 print
정렬 없이 사용할 수 있다!!
'알고리즘 > 백준' 카테고리의 다른 글
[백준 - SILVER 4] 11866. 요세푸스 문제 0 - C++ (0) | 2022.03.04 |
---|---|
[백준 - SILVER 2] 11047. 동전 0 - Python3 (0) | 2021.12.16 |
[백준 - SILVER 1] 1697. 숨바꼭질 - Python3 (0) | 2021.10.27 |
[백준 - SILVER 4] 2108. 통계학 - Python3 (0) | 2021.10.27 |
[백준 - SILVER 4] 1676. 팩토리얼 0의 개수 - Python3 (0) | 2021.10.09 |
댓글