TIL28. sys.stdin.readline()

Jaeyeon·2021년 3월 1일
0
post-thumbnail

input() vs sys.stdin.readline()

  • input() 내장 함수는 sys.stdin.readline()과 비교해서 prompt message를 출력하고,
    개행 문자를 포함한 값을 리턴하기 때문에 느리다.
    따라서 알고리즘 문제를 풀이할 때는 input()을 사용할 시에 시간초과가 발생할 수 있다.

하나의 정수를 입력 받을 때

import sys
a = int(sys.stdin.readline())

입력: 3
출력: 3

사용자가 정수의 갯수를 정하고 입력 받을 때

import sys
a,b,c = map(int,sys.stdin.readline().split())
print(a,b,c)

입력: 1 2 3
출력: 1 2 3

임의의 개수의 정수를 한줄에 입력받아 리스트에 저장할 때

import sys
a = list(map(int,sys.stdin.readline().split()))

입력: 1 2 3
출력: [1,2,3]

임의의 개수의 정수를 n줄 입력받아 2차원 리스트에 저장할 때

import sys
data = []
n = int(sys.stdin.readline())
for i in range(n):
	data.append(list(map(int,sys.stdin.readline().split())))
print(data)
import sys
n = int(sys.stdin.readline())
data = [list(map(int,sys.stdin.readline().split()) for i in range(n)]
print(data)

입력: 2 <------- n 입력값
12
34
출력: [[12],[34]]

임의의 개수의 정수를 n줄 입력받아 2차원 리스트에 저장하고 객체를 나눌 때

import sys
n = int(sys.stdin.readline())
arr = [list(map(int, sys.stdin.readline().strip())) for i in range(n)]
print(arr)

입력: 2 <------- n 입력값
12
34
출력: [[1,2],[3,4]]

문자열 n줄을 입력받아 리스트에 저장할 때

import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(n)] # strip()은 문자열 양쪽 공백 제거
print(data)

입력:2
안녕
하세요
출력:['안녕','하세요']

문자열 n줄을 입력받아 2차원 리스트에 저장하고 객체를 나눌 때

import sys
n = int(sys.stdin.readline())
arr = [list(sys.stdin.readline().strip()) for i in range(n)]
print(arr)

입력:2
안녕
하세요
출력:[['안','녕'],['하','세','요']]

profile
생각하는 개발자 되기

0개의 댓글