문제
10989번: 수 정렬하기 3 (acmicpc.net)
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
입력
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
출력
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
예제 입력 1 복사
10
5
2
3
1
4
2
3
5
1
7
예제 출력 1 복사
1
1
2
2
3
3
4
5
5
7
비슷한 문제
알고리즘 분류
시간 제한
- Java 8: 3 초
- Java 8 (OpenJDK): 3 초
- Java 11: 3 초
- Kotlin (JVM): 3 초
- Java 15: 3 초
메모리 제한
- Java 8: 512 MB
- Java 8 (OpenJDK): 512 MB
- Java 11: 512 MB
- Kotlin (JVM): 512 MB
- Java 15: 512 MB
채점 및 기타 정보
- 이 문제의 채점 우선 순위는 2이다.
N = int(input())
list_n = []
for _ in range(N):
list_n.append(input())
list_n = sorted(list_n)
for _ in list_n:
print(_)
처음엔 단순하게 리스트로 입력 받아 정렬인줄 알았으나 1000개의 정수값리스트는 메모리를 많이 잡아 먹는지 계속해서 메모리 초과가 출력되었습니다.
import sys
input = sys.stdin.readline
N = int(input())
list = [0] * 10001
for _ in range(N):
list[int(input())] += 1
for _ in range(10001):
if list[_] != 0:
for __ in range(list[_]):
print(_)
입력 받을 수 있는 값의 최대는 10000이므로 입력 받은 문자를 해당 횟수만큼 순서대로 출력하는 방식으로 바꾸었습니다.
Git Hub
BaekJoon-Study/10989.py at python · GUuu9/BaekJoon-Study (github.com)
GitHub - GUuu9/BaekJoon-Study
Contribute to GUuu9/BaekJoon-Study development by creating an account on GitHub.
github.com
'백준 코드 공부 > 파이썬' 카테고리의 다른 글
백준 15829 : Hashing (Python) (0) | 2022.02.18 |
---|---|
백준 1920 : 수 찾기 (Python) (0) | 2022.02.16 |
백준 11651 : 좌표 정렬하기 2 (Python) (0) | 2022.02.14 |
백준 11650 : 좌표 정렬하기 (Python) (0) | 2022.02.13 |
백준 5800 : 성적 통계 (Python) (0) | 2022.02.08 |