파이썬 입력받기
input()
sys.stdin.readline()
for 반복문으로 여러 케이스를 입력받아 실행하는 경우, input()을 통해 값을 입력받으면 시간초과가 날 수있다.
그래서 여러 줄을 입력받을 땐 sys.stdin.readline()을 사용하는걸 권장한다고 한다.
백준 15552번 문제 - https://www.acmicpc.net/problem/15552
내가 작성한 코드
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값을 출력할 수도 있다.
참고한 사이트
'알고리즘' 카테고리의 다른 글
백준 - 함수 (0) | 2021.07.27 |
---|---|
백준 - 1차원 배열 (0) | 2021.07.26 |
백준 - while문 (0) | 2021.07.20 |
백준 - if문 (0) | 2021.07.16 |
백준 - 입출력과 사칙연산 (0) | 2021.07.15 |