[Python] 코딩테스트 - 입력 정리

도도·2023년 9월 13일
0

Python

목록 보기
2/2

import sys

import sys
input = sys.stdin.readline
  • 파이썬에선 input() 대신 sys 라이브러리 sys.stdin.readline()을 권장

input vs sys.stdin.readline 동작 방식 차이

input() Function
사용자의 입력을 읽어온 후
1. 프롬프트로부터 사용자의 입력을 받는다
2. 입력 받은 값 중에서, 개행문자를 제거
3. 이후 해당 값을 문자열로 변경한 후 이를 return

sys.stdin.Object

  • sys.stdininput() 함수와 달리 File Object 객체이다
    readline은 sys.stdin 객체에서 지원하는 메소드이다.
  • sys.stdin.readline 은 개행문자까지 받아오기에 제거하려면 split() 함수를 추가로 실행해야 한다.

왜 sys.stdin이 더 빠를까?

input() 함수는 사용자의 입력을 받아 문자열로 변환 시키는 과정이 필요로 한다
sys.stdin의 경우 사용자의 입력을 Buffer에 저장한 후 요청이 올때마다 읽기에 더 빠르다.


코드 활용

N개의 정수를 한 줄로 입력 받은 경우

import sys

input = sys.stdin.readline
N, M, K = map(int, input().split())

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

import sys

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

N개의 정수를 여러 줄에 걸쳐 입력 받아 List에 저장하는 경우

import sys

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

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

import sys

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

N개의 정수를 여러 줄에 걸쳐 입력 받아 이차원 배열에 저장할 경우

import sys

input = sys.stdin.readline
N = int(input())

matrix = [list(map(int, input().split()))for _ range(N)]
profile
공부한것 정리하는 중입니다~

0개의 댓글