반응형
input()을 이용하면 프롬프트를 이용한 입력을 받을 수 있고, 형변환이 되는 이점이 있다.
대량의 데이터를 반복적으로 입력받을 때 input()을 이용하지 않고, sys.stdin.readline() 을 이용하면 성능이 향상
자바에서 Scanner를 이용한 입력보다 BufferedReader 를 이용한 입력이 빠른것처럼
파이썬도 input()을 이용하는 것보다 sys.stdin.readline()을 이용하는 것이 훨씬 빠르다.
Python
rstrip을 하라는 건 문자열 자체를 변수에 저장하고 싶을 때 얘기지, 개행문자가 맨 끝에 들어와도 int 변환이나 split()을 그대로 할 수 있습니다. 즉 int(sys.stdin.readline()), sys.stdin.readline().split() 이렇게 해도 아무 문제 없습니다. 참고로 이름이 꽤 길기 때문에 저는 input = sys.stdin.readline을 맨 처음에 함으로써 쓰는 편입니다.
풀이1. 입력값을 리스트에 한번에 쌓아서 출력하기
import sys
input = sys.stdin.readline
T = int(input())
result_arr = []
for i in range(1,T+1) :
A,B = map(int,input().split())
result_arr.append(A+B)
for i in range(len(result_arr)) :
print(result_arr[i])
풀이2. 입력과 동시에 출력하기
import sys
T = sys.stdin.readline() # T의 타입은 현재 str
for Repeat in range(0, int(T)): # T를 int로 바꿔서 for반복횟수로 씀.
# num = T.split() 로 하면 런타임에러 발생
num = sys.stdin.readline().split() # split()을 넣어서 띄워쓰기 기준으로 구분
print(int(num[0]) + int(num[1])) # 배열을 int로 반환해서 더할 수 있도록함
오류발생 : map을 사용하지 않았음
input = sys.stdin.readline
T = int(input())
A,B = int(input().split())
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
반응형
'● 알고리즘, 자료구조 > 2019 알고리즘' 카테고리의 다른 글
백준 2750 파이썬 / 버블,삽입정렬 / 문제풀이 4종류 (0) | 2019.08.28 |
---|---|
백준 2884 파이썬 알람 시계 / if문 / *단순 산수 (0) | 2019.08.22 |
백준 8393 파이썬 / 누적합 / int와 len / while,for문과 break, continue / (0) | 2019.08.05 |
[py/Error] cannot unpack non-iterable int object (0) | 2019.08.01 |
input, split, int (0) | 2019.07.29 |