알고리즘

(파이썬) 백준 알고리즘 - 10989번

joy_lee 2021. 8. 25. 17:38

수 정렬하기 3

https://www.acmicpc.net/problem/10989

 

10989번: 수 정렬하기 3

첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.

www.acmicpc.net

수 정렬하기 2번과 다르지 않은 문제라고 생각했는데 똑같은 방식으로 코드를 작성하면 '메모리 초과'가 떴다.

다른 방법을 알아보았다.

 

1
2
3
4
5
6
7
8
9
import sys
= int(sys.stdin.readline())
numbers = [0* 10001
for _ in range(N):
    numbers[int(sys.stdin.readline())] += 1
for i in range(10001):
    if numbers[i] != 0:
        for j in range(numbers[i]):
            print(i)
cs

이 경우는 중복된 수가 입력될 수 있다. 그래서 수의 개수를 세는 방식으로 몇 개씩 입력되었는지 확인하고,

입력된 경우(numbers[i] != 0 인 경우)엔 저장된 횟수만큼 수를 출력하도록 한다.

 

 

참고한 사이트

https://pacific-ocean.tistory.com/67

 

백준 알고리즘 10989번(python 파이썬)

문제 링크: https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나..

pacific-ocean.tistory.com