Develop/Python

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

dawonny 2022. 10. 25. 23:16
728x90
반응형

백준 15552번 문제 풀어보다가 입력 받는 법에 대해서 정리하고 싶어져서 포스팅!

https://www.acmicpc.net/problem/15552

 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net


파이썬에서 입력 받을 때 input() 만 써왔었는데 

사실 sys.stdin.readline() 도 사용이 가능하다.

(사용하기 위해선 import sys 를 해줘야 한다.)

 

한 두 줄 입력받는 문제들이랑 달리

반복문으로 여러줄을 입력받아야하는 경우에는 input() 으로 입력 받았다가 시간초과가 생길 수 있다.

 

사용법을 정리해보자.


정수 1개 입력받는 경우

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

왜 int 로 감싸주는 걸까? 

그 이유는 개행문자가 같이 입력받아지기 때문이다.

만약에 3을 입력한다면 3\n 이 저장되기 때문에 이 \n 을 제거해주어야 한다.

그래서 정수로 사용하기 위해서는 형변환 해주기 위해서 int 로 한번 감싸주는 과정을 거친다.

 

여러개(정해진 개수) 정수 한줄에 입력받는 경우

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

 

여러개(정해지지 않은 개수)의 정수를 한줄에 입력받아 리스트에 저장하는 경우

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

 

n 줄의 문자열을 입력받아 리스트에 저장하는 경우

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

strip() 은 무엇을 의미할까?

strip 은 문자열의 맨 앞과 맨 끝에 있는 공백문자를 제거한다.

 


간단하게 몇 가지 경우에 대해서만 정리해봤다.

개인적으로 sys.stdin.readline() 을 사용해서 입력을 받을 일이 있으면 너무 기니까

import sys
input = sys.stdin.readline
n = int(input())
for i in range(n):
	a, b = map(int, input().split())
	print(a+b)

이런 식으로 input에 먼저 sys.stdin.readline을 담아놓고 시작할 것 같다.

 

이 방식은 다음 링크에서 참고했다.

https://www.acmicpc.net/board/view/22716

 

글 읽기 - 추가 설명 및 다른 언어 빠른 입출력 방법

댓글을 작성하려면 로그인해야 합니다.

www.acmicpc.net


ref : https://velog.io/@yeseolee/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EC%A0%95%EB%A6%ACsys.stdin.readline

 

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

파이썬으로 코딩 테스트를 준비한다면, 반드시 알아야 할 입력방식인 sys.stdin.readline()에 대한 정리 입니다.

velog.io

 

728x90
반응형