[백준/Python/메모] 빠른 입출력 관련
입력 데이터 생성
import sys
import time
output = open('/content/boj.txt', 'w')
for i in range(100000):
output.write(str(i)+ '\n')
output.close()
end = time.time()
입력 메소드 3가지
# method A
data = input()
# method B
data = sys.stdin.readline()
# method C
input = sys.stdin.readline
data = input()
입력 메소드 별 시간 비교
# method A
input = open('/content/boj.txt', 'r').readline
input_list = []
start = time.time()
for _ in range(100000):
input_list.append(input())
end = time.time()
print(f"{end - start : .8f} sec")
# method B
del input
sys.stdin = open('/content/boj.txt', 'r')
input_list = []
start = time.time()
for _ in range(100000):
input_list.append(sys.stdin.readline())
end = time.time()
print(f"{end - start : .8f} sec")
# method C
del sys.stdin
input = open('/content/boj.txt', 'r').readline
input_list = []
start = time.time()
for _ in range(100000):
input_list.append(input())
end = time.time()
print(f"{end - start : .8f} sec")
input 방법 | A | B | C |
소요 시간 (sec) | 0.03562999 | 0.04108572 | 0.03076172 |
출력 (input method C 기준 비교)
# method output-a
input = open('/content/boj.txt', 'r').readline
start = time.time()
for _ in range(100000):
print(input(), end = '')
end = time.time()
print(f"{end - start : .8f} sec") # 0.92579961 sec
# method output-b
input = open('/content/boj.txt', 'r').readline
num_list = []
for _ in range(100000):
num_list.append(input().rstrip())
start = time.time()
print(num_list)
end = time.time()
print(f"{end - start : .8f} sec")
output 방법 | output-a | output-b |
소요 시간 (sec) | 0.03558874 sec | 0.00975847 sec |
.rstrip()
- 문자열을 입력 받는 경우, 맨 끝의 개행문자를 제거하기 위함
- map(int, input().split()) 처럼 형 변환 하는 경우에는 .rstrip() 안 써도 됨
참고
백준 15552번 (빠른 A+B) : https://www.acmicpc.net/problem/15552
Python 3.10.1 문서 (입력과 출력) : https://docs.python.org/ko/3/tutorial/inputoutput.html#input-and-output
'🐹알고리즘' 카테고리의 다른 글
[백준/C] 4673번 : 셀프 넘버 (0) | 2020.08.18 |
---|---|
알고리즘을 시작하며... (0) | 2020.07.17 |
[파이썬] 한 줄에 정수 2개 입력 받기 (0) | 2020.06.12 |
댓글
이 글 공유하기
다른 글
-
[백준/C] 4673번 : 셀프 넘버
[백준/C] 4673번 : 셀프 넘버
2020.08.18 -
알고리즘을 시작하며...
알고리즘을 시작하며...
2020.07.17 -
[파이썬] 한 줄에 정수 2개 입력 받기
[파이썬] 한 줄에 정수 2개 입력 받기
2020.06.12