보글보글 개발일지
반응형

마치 C++의 cin처럼 sys.stdin.readline으로 입력 받는 게 더 빠르다.

그냥 input()으로 입력받아도 되긴하나, 여러 과정이 추가로 진행되어 느리다고 한다.

2개 입력 받아서 각 변수에 저장

예시

3 5
import sys
read = sys.stdin.readline
n,m = map(int,read().split())

N개의 정수를 한 줄로 입력 받아 List에 저장할 경우

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

2차원 배열 입력받기 (공백 없는 경우)

4 6
101111
101010
101011
111011

위처럼 입력받아야 하는 경우

import sys
read = sys.stdin.readline
arr_no_space = [list(map(int,read())) for _ in range(n)]

2차원 배열 입력받기 (공백 있는 경우)

6 5
1 1 0 1 1
0 1 1 0 0
0 0 0 0 0
1 0 1 1 1
0 0 1 1 1
0 0 1 1 1

위의 경우에는 split()으로 공백만 나누어주면 된다.

import sys
read = sys.stdin.readline
arr_yes_space = [list(map(int,read().split())) for _ in range(n)]

N개의 문자열을 여러 줄에 걸쳐 입력 받아 List에 저장할 경우

import sys
read = sys.stdin.readline
N = int(read())
data = [read().strip() for _ in range(N)]

대부분의 문자열 처리의 경우 개행문자 \n 를 제거해야 하는 경우가 많다.

따라서 strip() 함수를 통해 문자열에 붙은 개행문자를 없애버리면 된다.

여기서 strip는 세가지가 존재한다.

  • strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다.
  • lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다.
  • rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다.
반응형
profile

보글보글 개발일지

@보글

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!