IT/따로 공부

[파이썬] input(), sys.stdin.readline()

ziasu 2021. 6. 23. 11:52
반응형

파이썬이란 언어를 코딩 테스트 준비하면서 처음 익혀서

필요한 문법이 나올 때마다 찾아가면서 공부하는 중입니다.

원래 사용자 입력을 받아야하는 상황이 나오면 거의 input()을 활용했는데, 찾아보니 input()을 사용하면 안 되는 경우와 복잡도가 올라가는 경우가 있다고 해서 input() vs sys.stdin.readline()을 정리해보려고 합니다.

 

아래의 문서를 참고하였습니다.

Difference between input() and sys.stdin.readline() - GeeksforGeeks

 

Difference between input() and sys.stdin.readline() - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org


1. input() 작동

-input() function이 작동하면 사용자 입력이 들어올 때까지 그 입력을 위해 다른 것들을 멈춘다.

-사용자 입력을 받으면 

 사용자 입력 -> string형 -> 원하는 자료형으로 형변환을 해줘야 함

 

2. sys.stdin.readline() 작동

-한 줄의 문자열을 입력받으며 tab, enter, space와 같은 escape character 또한 입력받을 수 있다.

 

3. input() vs sys.stdin.readline()

-만약에 3*3의 int형 3차원 리스트를 입력받고 싶으면

 

-input()의 경우에는

9개의 입력을 각각 (입력-> string형 -> int형) 변환을 해준다.

-sys.stdin.readline()의 경우에는

3개의 문자열에 대해 형변환을 해준다.

 

 

아래의 입력 속도 비교가 정리되어있는 자료에서도 이를 수치적으로 확인할 수 있다.

입력 속도 비교 (acmicpc.net)

 

입력 속도 비교

여러가지 언어와 입력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 첫째 줄에 정수의 개수 N (= 10,000,000), 둘째 줄부터 N개의 줄에 한 개의 자연수(10,000 이하)가 적힌 파일

www.acmicpc.net

 

 

 

 

반응형