[Python 문법] 파이썬 입력 받기(sys.stdin.readline)

시리·2023년 9월 24일
1

💊input() 대신 sys.stdin.readline()을 사용하는 이유

한 두줄 입력받는 문제들과 다르게, 반복문으로 여러줄을 입력 받아야 할 때는 input()으로 입력 받는다면 시간초과가 발생할 수 있습니다.

💊sys.stdin.readline() 사용법

주로 map 함수를 사용해 형 변환을 해줍니다.

💡한 개의 정수를 입력받을 때

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

💡정해진 개수의 정수를 입력받을 때

import sys
# 두 개 입력받기
a,b = map(int,sys.stdin.readline().split())
# 세 개 입력받기
a,b,c = map(int,sys.stdin.readline().split())

💡한 개의 정수를 n줄 입력받을 때

import sys
n = int(sys.stdin.readline())
nums = [int(sys.stdin.readline()) for _ in range(n)]

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

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

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

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

💡문자열 한 줄 입력받을 때

import sys
a = sys.stdin.readline()

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

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

💡문자열과 숫자가 섞인 n줄 입력받을 때

  • 예제
2
kim 100
lee 200
  • 방법
import sys
n = int(sys.stdin.readline())
a = []
b = []
for _ in range(n):
    name,num = map(str,sys.stdin.readline().split())
	# 이하로는 원하는 대로 변형
	a.append(name)
    b.append(num)

💡첫 줄에 두 개의 정수를 입력받고 둘째줄부터 배열의 정보를 입력받을 때

  • 예제
3 4
1 2
1 3
3 4
  • 방법
import sys

n = list(map(int, sys.stdin.readline().split()))
# 4행 만들기
a = [sys.stdin.readline().split() for x in range(n[1])]
# 3열 만들기
b = [[0] * n[0] for x in range(n[0])]
profile
데이터 분석가 되기 프로젝트 ٩( ᐛ )و

0개의 댓글