코딩테스트/코딩테스트 문제
코딩테스트 준비 - 백준10989번 정렬3 풀이 (파이썬)
공부가싫다가도좋아
2021. 5. 31. 15:47
반응형
백준 10989번 풀이
문제풀러가기
https://www.acmicpc.net/problem/10989
10989번: 수 정렬하기 3
첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다.
www.acmicpc.net
풀이
1. 시간과 메모리 제한 유의
2.주어진 문제에서 제한한 메모리가 매우 낮다.그러므로 pypy3보다 python3로 사용할 것.
(pypy3보다 python3가 시간상 더 빠르게 동작, 하지만 메모리 사용량이 python3
보다 많음 )
3. N의 범위가 정해져 있다. 1~10000까지
코드 - 시간 초과 코드:실패
import sys
N = int(sys.stdin.readline())
arr = [0]*10001
for i in range(N):
a = int(sys.stdin.readline())
arr.insert(a,a)
for i in arr:
if(i!=0):
print(i)
코드 - 성공
import sys
N = int(sys.stdin.readline())
arr = [0]*10001
for i in range(N):
a = int(sys.stdin.readline())
arr[a] += 1
for i in range (len(arr)):
if arr[i] != 0:
for j in range(arr[i]):
print(i)
하... 시간과 메모리 제한 있으니 자까 메모리 혹은 시간 초과가 떳다..
그리고 python3로 돌리면 되는 코드가 , pypy3로 하면 메모리 초과가 떠서 안된다 ㅠ_ㅠ
반응형