1) sys.stdin.readline()이란?
system에 정의된 함수로, import sys 를 통해 사용할 수 있다.
import sys
example=int(sys.stdin.readline())
한 줄 전체를 입력으로 받으며, 따라서 Enter의 입력으로 입력 단위가 구분된다.
+)더해서, 개행으로 인해 입력 단위가 구분된다는 의미이기 때문에 개행 문자를 함께 받는다. 제거하고 싶다면 input()에서와 마찬가지로 개행문자를 제거하면 된다.
한 가지 주의할 점은, 그냥 sys.stdin.readline()만 사용했을 경우에는 자동으로 문자열 처리되기 때문에 자료형을 앞에 명시해주어야 한다.
물론 split()을 사용할 수도 있다.
example2,example3=sys.stdin.readline().split()
2) input()이란?
파이썬을 처음 시작할 때 입력 함수로 가장 많이 쓰는 함수이다. 위의 sys.stdin.readline()과 마찬가지로 문자열 형태로 값을 입력받는다. split 함수의 사용도 1)과 마찬가지로 적용된다. 자료형의 변환 역시 1)과 같다.
example_py=int(input().split())
int 형변환+split() 적용까지 하면 위의 형식처럼 된다.
3) sys.stdin.readline()과 input()의 차이는?
1)에서 언급했듯, sys.stdin.readline()은 개행문자를 포함한 꼴로 저장된다. 반면, input()은 이를 제거하고 저장하는데, 따라서 입력된 개행문자를 제거하는 절차를 거친 뒤 값을 저장하게 된다. 따라서 전자에 비해 step이 하나 더 있다고 생각하면 된다. 그래서 적은 수의 입력을 받을 때는 input()을 사용해도 큰 문제가 없지만, 할당된 시간 자원이 제한적이라든가, 많은 값들을 반복적으로 받는 작업 (가령 while true: 동안 무한에 가깝게 실행) 을 할 때에는 input()을 사용하면 시간이 초과된다.
그러므로 long coding을 하게 될 때는 sys.stdin.readline()을 주로 사용하도록 하자!
'CS Study' 카테고리의 다른 글
| C++ 기초문법 3) 조건문 (0) | 2023.05.14 |
|---|---|
| C++ 기초 - 입력 및 사칙연산 (0) | 2023.05.07 |
| C++ 기초 : 출력 (0) | 2023.05.07 |
| 파이썬 자주 쓰는 함수 정리 (0) | 2023.04.02 |
| 논리설계) Signed Binary Number (0) | 2023.03.19 |