Algorithm Study/Python

[백준 파이썬] #2751 수 정렬하기 2

728x90
반응형

Silver V

# 2751 수 정렬하기 2

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

 

2751번: 수 정렬하기 2

첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.

www.acmicpc.net

 

풀이

tn = int(input())
li = []

for i in range(tn):
    nu = int(input())
    li.append(nu)


n_lis = sorted(li)
for i in n_lis:
    print(i)

 

  • 채점 결과 : 시간 초과 (채점 중 1%에서 정지)
  • 문제해결 : 공빅데 게시글에 문의_답변 확인

- 공공빅데이터 카페 문의를 통해 받은 답변

  1. 다음과 같이 sys를 통한 풀이를 하면 시간 초과 문제를 해결할 수 있다
import sys
n = int(input())
l = []

for i in range(n):
    l.append(int(sys.stdin.readline()))

for i in sorted(l):
    sys.stdout.write(str(i)+'\n')

 

  1. 시간초과 문제가 발생할 경우 PyPy로 채점을 진행해본다

PyPy3는 기본적으로 Python3와 같은 문법을 지원하지만, 코어적으로 빠르게 동작한다

코딩테스트를 응시할 때, 두 개중 선택할 수 있다면 무조건 PyPy3를 선택해서 푸는 것이 좋다고 알려져있다

→ 내 풀이 코드를 PyPy3로 채점했을 때 정답으로 채점되었다

 

  1. 이후 자료 구조에 대한 이론공부가 필요하다 → 문제 풀이를 좀더 진행해보고 추후 리스트, 스택, 큐를 공부하면서 이해도를 높여가야 한다.