반응형
2751번
https://www.acmicpc.net/problem/2751
정렬문제인데, merge sort를 써도 시간초과가 계속 떠서
알아보니... sorting의 문제가 아니라 input의 문제였다.
input()을 반복적으로 이용하면 시간이 초과가 뜬다.
모듈 sys의 stdin.readline()를 이용해서 시간을 줄여야 한다.
주의해야 할 점은 readline()을 쓰면 개행문자(?) (\n, \t 등)가 포함된 채 입력된다는 점인데...
실제로 풀어본 결과 음...strip()을 쓰지 않아도 정답이 떴다.
왜 그런지 잘 모르겠다. 조금 더 조사해봐야 겠다.
여하튼, 일단은 정답이라고 뜬 코드는 아래와 같다.
(두 버전 다 그냥 sort 내장함수를 이용했다.)
# 버전1 (개행문자 없애는 작업 없음.??)
import sys
n = int(input())
data = [int(sys.stdin.readline()) for i in range(n)]
data.sort()
for i in data:
print(i)
# 버전2 (개행문자없애는 과정을 포함하고 싶어서 실시)
import sys
n = int(input())
data = [sys.stdin.readline().strip() for i in range(n)] #strip으로 개행문자없앰.
data = list(map(int, data))
data.sort()
for i in data:
print(i)
참고한 블로그!
https://lute3r.tistory.com/m/240
https://mgyo.tistory.com/166?category=879767
반응형
'공부 > 데이터사이언스' 카테고리의 다른 글
Sorting algorithm(정렬 알고리즘) - 4탄 Bubble sort(버블 정렬) (0) | 2022.07.13 |
---|---|
Sorting algorithm(정렬 알고리즘) 3탄 - Merge Sort(합병 정렬) (0) | 2022.07.10 |
[백준] 9단계 - 11729번 (파이썬) check! (0) | 2022.07.05 |
[백준] 9단계 - 17478번 (파이썬) check! (0) | 2022.07.03 |
[백준] 9단계 - 10870번 (파이썬) (0) | 2022.07.03 |
댓글