굴러가는 분석가의 일상

알고리즘 입력 받기 / sys.stdin.readline() 본문

Algorithm/Python

알고리즘 입력 받기 / sys.stdin.readline()

G3LU 2024. 2. 5. 18:45

※ 본 포스팅에서는 알고리즘의 입력을 받는 것에 대해 소개하고자 합니다. 주로 파이썬을 통해 알고리즘 입력을 받을 때, Input()을 사용하지만, 시간초과 에러가 발생하곤 합니다. 이러한 문제점을 방지하고자, sys.stdin.readline()에 대해 알아보겠습니다.


💡 sys.stdin.readline() 특징

✔️ 문자열로 입력을 받는다.

 

sys.stdin.readline()은 문자열로 입력을 받게 됩니다. 따라서, 읽어온 문자열은 필요에 따라 적절한 처리 및 형 변환을 해주어야합니다. 예를 들어, 숫자를 입력으로 받아야 할 때는 'int()' 혹은 'float()' 함수를 사용하여 적절하게 함수를 사용하여 처리해야합니다.

 

✔️ 개행 문자 "\n"를 같이 입력받는다.

 

예를 들어 "Hello Wolrd!" 라는 문자열을 입력 받았다고 가정해보겠습니다. sys.stdin.readline()에 의해 "Hello, World!\n" 처럼 개행 문자('\n')가 포함되어 출력되므로, 이를 처리해야 할 필요가 있습니다. 

 

💡 sys.stdin.readline() 사용법

📌 하나의 정수값 입력받기 

 

예시) 

import sys

num = int(sys.stdin.readline()) #3 입력
print(num)

 

결과) 

3

 


 

📌 두 개 이상의 정수값 입력받기

 

예시)

import sys

A, B = map(int,sys.stdin.readline().split()) #1 2 입력 
print(A,B)

 

결과)

1 2

 

  • map() 사용하여 두개 이상의 정수를 입력 받을 수 있습니다. 
  • 리스트로 반환하고 싶다면, map()list()로 감싸주면 됩니다. 

 

📌 두 개 이상의 문자/문자열 입력받기

 

예시)

import sys 
strings = sys.stdin.readline().split() #pu pp y
print(strings)

 

결과) 

['pu','pp','y']

 

  • 공백을 기준으로 문자/문자열을 입력 받을 수 있습니다. 
  • sys.stdin.readline.split()는 리스트를 반환합니다. 

 

📌 공백과 함께 주어지는 정수 입력받기 

#3x3 Matrix 
1 0 0 
0 1 0 
0 0 1

 

예시) 

import sys 
rows,cols = map(int, sys.stdin.readline().split())
matrix = [list(map(int, sys.stdin.readline().split()) for r in range(rows)]
print(matrix)

 

결과) 

[[1, 0, 0], [0, 1, 0], [0, 0, 1]]

 


📌 공백 없이 주어지는 정수 입력받기 

#3x3 Matrix 
100 
010 
001

 

예시)

import sys
rows, cols = map(int,sys.stdin.readline().split())
matrix = [sys.stdin.readline().strip() for r in range(rows)]
print matrix

 

결과) 

['100', '010', '001']

 

'Algorithm > Python' 카테고리의 다른 글

[Python] 구글 이미지 웹크롤링(Selenium)  (4) 2024.03.05