Notice
Recent Posts
Recent Comments
Link
just inside
[백준] Bronze 1. 10989 - 수 정렬하기 3 python 본문
728x90
문제 링크
https://www.acmicpc.net/problem/10989
문제 설명
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
제출 코드
import sys
input = sys.stdin.readline
n = int(input().rstrip())
nums = [0 for _ in range(10001)]
for _ in range(n):
num = int(input().rstrip())
nums[num] += 1
for i in range(1, 10001):
num = nums[i]
if num != 0:
for j in range(num):
print(i)
풀이
- 메모리 제한이 있으므로, 입력받은 수를 모두 저장하는 것은 효율적이지 않다.
- 10000까지의 숫자만 입력하므로, 1부터 10000까지의 리스트를 생성해 수를 입력받을 때마다 해당 인덱스에 1을 더해준다.
- 인덱스의 수가 0이 아닌 경우, 저장된 수만큼 인덱스를 출력해준다.
알아둘 사항
import sys
input = sys.stdin.readline
n = int(input().rstrip())
nums = []
for _ in range(n):
nums.append(int(input().rstrip()))
print(*sorted(nums), sep='\n')
- 이렇게 하면 틀린다.
- 정렬이라고 해서 진짜 정렬하려고만 하지 말자.
728x90
'coding test > 정렬' 카테고리의 다른 글
[백준] Silver 4. 1764 - 듣보잡 python (0) | 2024.08.02 |
---|---|
[백준] Silver 3. 2108 - 통계학 python (0) | 2024.07.28 |
[백준] Silver 5. 11651 - 좌표 정렬하기 2 python (1) | 2024.07.15 |
[백준] Silver 5. 11650 - 좌표 정렬하기 python (0) | 2024.07.15 |
[백준] Silver 5. 10814 - 나이순 정렬 python (0) | 2024.07.15 |