전체 방문자
오늘
어제
이대코
ServerNeverDown
이대코
  • 분류 전체보기 (109)
    • Project (9)
      • GASIP_대학 커뮤니티 (5)
      • CATCHROOM_야놀자중고숙박거래 (2)
      • CANCER-FINE_암환자를 위한 정보 제공 사.. (2)
    • Development (46)
      • Python (9)
      • Java (8)
      • Kotlin (1)
      • Spring&Springboot (4)
      • BootCamp (10)
      • DevOps (1)
      • TrobleShooting (6)
      • Network (1)
      • DataBase (2)
      • OS (1)
      • Design Pattern (2)
    • Coding Test (51)
      • BOJ (1)
      • DFS,BFS (4)
      • 그리디 알고리즘 (6)
      • Dynamic Programming (2)
      • 이진 탐색 (0)
      • 초보자를 위한 파이썬 300제 (29)
      • 구현 (9)
    • Stock (3)
      • Market View (2)
      • Analysis of stocks (0)
      • Knowledge (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

인기 글

hELLO · Designed By 정상우.
이대코

ServerNeverDown

[Python] input함수 대신 sys.stdin.readline 활용하기
Development/Python

[Python] input함수 대신 sys.stdin.readline 활용하기

2022. 12. 30. 14:29

안녕하세요. Harry입니다.

 

본 포스팅의 목적은, 코딩테스트를 준비함에 있어 스스로 공부한 지식을 정리하고자 합니다.

 

이번에 배운 내용은 사용자 입력함수로 input() 대신 sys.stdin.readline을 입력하여 사용자 입력을 받는다는 것입니다.

 

1) 왜 input함수를 안쓰고 이걸 쓰냐?

input()함수의 경우, 입력 받을 때 매우 느려 10만개 이상 입력받을 경우 시간 초과 문제가 발생합니다.

input()은

- 사용자에게 입력을 받은 후

- 받은 입력을 문자열로 전환하고

- strip (공백제거) 까지 진행하기 때문에 비교적 오래 걸리는 함수입니다.

 

2) sys.stdin.readline 은??

개행 문자까지 포함하여(즉, 한줄 전체를) 출력하기 때문에 따로 strip 과정이 없습니다. 그렇기 때문에 input함수 보다 비교적 빠르게 출력할 수 있습니다.

 

3) 사용방법

기본

아래와 같은 경우, a\n 값이 저장됩니다.

import sys
input = sys.stdin.readline

 

정수 1개를 입력 받을 경우

아래와 같이 받는다면, 하나의 정수를 받을 수 있습니다.

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

여러개의 정수를 받는 경우

map 함수 및 split 메서드를 이용하는 것은 Input을 활용할때와 동일합니다.

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

자세한 설명은 이 포스팅 참고 부탁드립니다.

https://hyem5019.tistory.com/entry/Python-input-%ED%95%A8%EC%88%98-%ED%99%9C%EC%9A%A9%ED%95%98%EC%97%AC-%EC%9B%90%ED%95%98%EB%8A%94-%EB%A7%8C%ED%81%BC-%EB%A6%AC%EC%8A%A4%ED%8A%B8-%EB%82%B4-%EC%9B%90%EC%86%8C-%EC%9E%90%EB%8F%99%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0

 

[Python] input 함수 활용하여 원하는 만큼 리스트 내 원소 자동생성하기

안녕하세요. Harry입니다. 본 포스팅의 목적은, 코딩테스트를 준비함에 있어 스스로 공부한 지식을 정리하고자 합니다. 코딩테스트를 준비하다보면, 반복문이 1번 돌때마다 나온 값을 한 리스트

hyem5019.tistory.com

여러개의 정수를 입력받아 리스트로 저장하는 경우

역시 input 함수와 동일합니다.

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

여러개의 정수를 여러 줄 입력받아 2차원 리스트로 저장하는 경우

import sys
#임의 리스트 생성
input = sys.stdin.readline
graph = [list(map(int,input().split())) for i in range(4)]

(23.2.9 추가)

1. Input 메서드를 써야할 때

  • 2차원 그래프 입력받을 때 숫자를 붙여서 입력하는 경우.(아래는 예시 문제입니다.)

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

 

2178번: 미로 탐색

첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다.

www.acmicpc.net

2. sys.stdin.readline을 써야할 때

  • 기본적으로 띄어쓰기가 된 채로 2차원 그래프를 입력받을 때.

감사합니다.

저작자표시 비영리 변경금지 (새창열림)

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

[Python] 리스트 인덱스 중복하는 경우  (0) 2023.03.29
[독학 파이썬] 파이썬 ord 메서드 활용법 정리(feat.chr)  (2) 2023.02.01
[Python] input 함수 활용하여 원하는 만큼 리스트 내 원소 자동생성하기  (0) 2022.12.30
[독학 파이썬] 파이썬 자료형 종류별 내장 함수 정리(리스트)_12.12  (0) 2022.12.12
[독학 파이썬] 파이썬 자료형 종류별 내장 함수 정리(문자열)_12.12  (0) 2022.12.12
    'Development/Python' 카테고리의 다른 글
    • [Python] 리스트 인덱스 중복하는 경우
    • [독학 파이썬] 파이썬 ord 메서드 활용법 정리(feat.chr)
    • [Python] input 함수 활용하여 원하는 만큼 리스트 내 원소 자동생성하기
    • [독학 파이썬] 파이썬 자료형 종류별 내장 함수 정리(리스트)_12.12
    이대코
    이대코
    20대에 대장암 걸린 코틀린/자바 백엔드 개발자의 블로그입니다.

    티스토리툴바