관리 메뉴

100세까지 코딩

[백준] 15552번 빠른 A + B (파이썬) + 입력 받기(sys.stdin.readline) 본문

코딩테스트/파이썬

[백준] 15552번 빠른 A + B (파이썬) + 입력 받기(sys.stdin.readline)

100세까지 코딩 2024. 1. 7. 15:25
 

15552번: 빠른 A+B

첫 줄에 테스트케이스의 개수 T가 주어진다. T는 최대 1,000,000이다. 다음 T줄에는 각각 두 정수 A와 B가 주어진다. A와 B는 1 이상, 1,000 이하이다.

www.acmicpc.net

문제

나의 생각
  • 문제에서도 말했듯이 입출력 방식이 느리면 여러 줄을 입력받을때 시간초과가 날 수 있다.
  • 파이썬 사용자는 sys.stdin.readline()을 사용하자.
나의 풀이
import sys
T = int(input())
for _ in range(T):
    a,b = map(int,sys.stdin.readline().split())
    print(a+b)
참고

1. input과 sys.stdin.readline의 차이점

input() sys.stdin.readline()
1. 입력받은 값의 개행 문자를 삭제시켜 받아온다. (속도 저하)
2. 매개변수로 문자열을 받아 Console에 출력한다. (속도 저하)
1. 개행 문자를 포함한 값을 받아온다. (속도 빠름)

2. sys.stdin.readline 개행 문자 없애는 방법

   1. 정수형(int)으로 받아서 '\n' 개행 문자를 받지 못하게 하기.

import sys
a = int(sys.stdin.readline())

   2. 개행 문자를 제거해주는 함수 사용. ex : strip() -양쪽 제거 , lstrip() -왼쪽 제거, rstrip() -오른쪽 제거

import sys
a = sys.stdin.readline().strip()

3. sys.stdin.readline 사용법

   1. 정해진 개수의 정수를 한줄에 입력받을 때

import sys
a,b,c = map(int,sys.stdin.readline().split())

   2. 임의의 개수의 정수를 한줄에 입력받아 리스트에 저장

import sys
data = list(map(int,sys.stdin.readline().split()))

   3. 임의의 개수의 정수를 n줄 입력받아 2차원 리스트에 저장

import sys
data = []
n = int(sys.stdin.readline())
for i in range(n):
    data.append(list(map(int,sys.stdin.readline().split())))

   4. 문자열 n줄을 입력받아 리스트에 저장

import sys
n = int(sys.stdin.readline())
data = [sys.stdin.readline().strip() for i in range(n)]