관리 메뉴

Nacho

Python 빠른 입출력(I/O) sys.stdin.readline(), sys.stdout.write() 본문

코딩테스트

Python 빠른 입출력(I/O) sys.stdin.readline(), sys.stdout.write()

Nacho_13 2024. 2. 23. 21:42
반응형

뱀쉑

a = input()

 

입력으로 input() 함수를 사용한다면 문자열을 받아오는 데 시간이 생각보다 많이 소요된다. 

입력값이 많은 문제를 만나면 시간초과를 일으키는 경우도 있다... 

 

sys.stdin.readline()

import sys # 아묻따 import 갈겨버리기 
a = sys.stdin.readline()

 

이때 sys.stdin.readline()을 사용하면 된다.

 

프로그래머스에서 코테 공부를 진행한 나로서는 생소한 함수였는데 에이블스쿨 코딩마스터스에서 처음 만났다.

 

sys.stdin.readline() 은 개행문자 "\n"을 포함하기 때문에 .strip()로 제거해줘야 한다.

 

사용법

  • 정수 하나를 입력으로 받을 때
import sys
a = int(sys.stdin.readline())

 

문자열로 형변환하여 사용한다.

 

  • 정수 여러 개를 받아올 때
import sys
a, b, c = map(int, sys.stdin.readline().split("기준"))

 

map 함수를 사용하여 형변환하여 사용한다.

 

  • 정수형 리스트를 입력으로 받을 때
import sys
sample_list = list(map(int, sys.stdin.readline().split("기준")))

 

  • 정수형 리스트를 n개를 입력으로 받아 2차원 리스트로 만들 때
import sys
n = sys.stdin.readline()

smaple_2D_list = []
for i in range(n):
	smaple_2D_list.append(list(map(int,sys.stdin.readline().strip().split("기준"))))

 

  • 문자열을 n개 입력받아 하나의 리스트로 저장할 때
import sys
n = int(sys.stdin.readline())
samplr_list = [sys.stdin.readline().strip() for _ in range(n)]

 

sys.stdout.write()

 import sys
 sys.stdout.write('Hello' + '\n')

 

print 처럼 사용하면 된다. 다만 C의 printf 처럼. 개행문자를 뒤에 직접 붙여준다.

 

print = sys.stdout.write()

 

이렇게 사용하면 더 편하다고 한다..

 

input = sys.stdin.readline()

 

물론 input도 가능..

반응형