CodingTest/Baekjoon

[baekjoon] 백준 10989번(파이썬): 수 정렬하기 3

JunJangE 2022. 4. 28. 00:07

문제

 

10989번: 수 정렬하기 3

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

www.acmicpc.net

알고리즘

- 반복문을 통해 dp[idx] 위치에 수를 카운트한다.

- 10001번 반복해서 받은 수에 개수를 출력한다.

코드

import sys

n = int(sys.stdin.readline())
dp = [0] * 10001

# 반복문을 통해 dp[idx] 위치에 수를 카운트한다.
for _ in range(n):
    dp[int(sys.stdin.readline())] += 1

# 10001번 반복해서 받은 수에 개수를 출력한다.
for i in range(1, 10001):
    for _ in range(dp[i]):
        print(i)

처음에 n번씩 반복해서 메모리 초과가 나왔다.

메모리 초과가 나와 문제를 다시 읽어보니 입력받은 수에 최대가 10000이기 때문에 10001번을 반복하여 받은 수에 개수를 출력하면 되는 것이었다.

문제를 천천히 정확하게 읽어야겠다.. 

github

 

GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법

내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.

github.com