파이썬 입력받기
input()
sys.stdin.readline()
for 반복문으로 여러 케이스를 입력받아 실행하는 경우, input()을 통해 값을 입력받으면 시간초과가 날 수있다.
그래서 여러 줄을 입력받을 땐 sys.stdin.readline()을 사용하는걸 권장한다고 한다.
백준 15552번 문제 - https://www.acmicpc.net/problem/15552
15552번: 빠른 A+B
첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.
www.acmicpc.net
내가 작성한 코드
1
2
3
4
5
6
|
import sys
a = int(sys.stdin.readline().rstrip("\n"))
for i in range(a):
b, c = map(int, sys.stdin.readline().rstrip("\n").split())
print(b + c)
|
cs |
.rstrip("/n")
sys.stdin.readline()으로 입력받은 값은 뒤의 개행문자인 '\n'도 같이 입력된다.
.rstrip()은 인자로 전달된 문자를 string의 오른쪽에서 제거한다.
한 개의 인수를 입력받을 때
a = int(sys.stdin.readline().rstrip("\n"))
한 개의 인수만 받을땐 int(input())로 받아도 괜찮다.
여러 개의 인수를 입력받을 때
b, c = map(int, sys.stdin.readline().rstrip("\n").split())
위의 문제에서는 각 줄에 두 정수를 입력받는다고 명시했기 때문에 b와 c에 각 수를 입력했다.
한꺼번에 입력받고, 한꺼번에 출력하는 방법
1
2
3
4
5
6
|
import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip().split() for i in range(n)]
for i in range(n):
a, b = map(int, data[i])
print(a + b)
|
cs |
n줄을 입력받아 list에 저장한 후, 값을 하나씩 불러와 a+b값을 출력할 수도 있다.
참고한 사이트
[Python 문법] 파이썬 입력 받기(sys.stdin.readline)
파이썬으로 코딩 테스트를 준비한다면, 반드시 알아야 할 입력방식인 sys.stdin.readline()에 대한 정리 입니다.
velog.io
'알고리즘' 카테고리의 다른 글
백준 - 함수 (0) | 2021.07.27 |
---|---|
백준 - 1차원 배열 (0) | 2021.07.26 |
백준 - while문 (0) | 2021.07.20 |
백준 - if문 (0) | 2021.07.16 |
백준 - 입출력과 사칙연산 (0) | 2021.07.15 |