본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.
Python을 사용하고 있다면, input 대신 sys.stdin.readline을 사용할 수 있다. 단, 이때는 맨 끝의 개행문자까지 같이 입력받기 때문에 문자열을 저장하고 싶을 경우 .rstrip()을 추가로 해 주는 것이 좋다.
또한 입력과 출력 스트림은 별개이므로, 테스트케이스를 전부 입력받아서 저장한 뒤 전부 출력할 필요는 없다. 테스트케이스를 하나 받은 뒤 하나 출력해도 된다.
rstrip을 하라는 건 문자열 자체를 변수에 저장하고 싶을 때 얘기지, 개행문자가 맨 끝에 들어와도 int 변환이나 split()을 그대로 할 수 있습니다. 즉 int(sys.stdin.readline()), sys.stdin.readline().split() 이렇게 해도 아무 문제 없습니다. 참고로 이름이 꽤 길기 때문에 저는 input = sys.stdin.readline을 맨 처음에 함으로써 쓰는 편입니다.
출처 : 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
백준 문제를 풀다가 발견한 sys.stdin.readline 에 대한 설명이다.
다른 사람들 풀이에서 자주 보았는데, 학교 수업에선 배운 적이 없어 왜 나만 모르지 했었다.
근데 여기서 이렇게 알려주는 거 였구나! 앞으로 자주 사용해야겠다.
아래는 추가적으로 참고한 설명 링크다.
[Python 문법] 파이썬 입력 받기(sys.stdin.readline)
파이썬으로 코딩 테스트를 준비한다면, 반드시 알아야 할 입력방식인 sys.stdin.readline()에 대한 정리 입니다.
velog.io
백준 10950번과 15552번의 차이를 통해 한 번 확인해보자.
10950.
import sys
'개발 > 파이썬' 카테고리의 다른 글
파이썬 기본 문법 - rjust(n) .center(n) .ljust(n) (0) | 2022.03.03 |
---|---|
파이썬 기본 문법 - for문 (0) | 2022.03.03 |
파이썬 기본 문법 - map과 input(), split() (0) | 2022.03.02 |
파이썬 기본 문법 - 나눗셈 (0) | 2022.03.02 |
CodeUp Python 기초 100제 (0) | 2022.02.27 |