본문 바로가기
코딩테스트/코딩테스트 문제

코딩테스트 준비 - 백준10989번 정렬3 풀이 (파이썬)

by 공부가싫다가도좋아 2021. 5. 31.
반응형

백준 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로 하면 메모리 초과가 떠서 안된다 ㅠ_ㅠ

 

반응형

댓글