알고리즘

백준 - for문

joy_lee 2021. 7. 20. 21:33

파이썬 입력받기

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
 
= 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
= 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값을 출력할 수도 있다.

 

참고한 사이트

https://velog.io/@yeseolee/Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%EC%9E%85%EB%A0%A5-%EC%A0%95%EB%A6%ACsys.stdin.readline

 

[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