Post

10951번 A+B - 4는 별도의 테스트케이스 개수가 주어지지 않고, EOF에 도달하면 반복을 멈춰야하는 문제이다.

파이썬에서는 크게 두가지 방법이 있다.

1. 예외처리 (try ~ except)

1
2
3
4
5
6
while 1:
    try:
        A,B = map(int,input().split())
        print(A+B)
    except EOFError:
        break

input() 함수는 파일의 끝(End Of File)에 도달했을 때 출력되는 에러이다. 한 라인씩 파일을 읽어오다가, 어느순간 파일의 끝에 도달해 입력받을 수 있는 값이 없다는 의미이다.

때문에 except문 예외처리를 통해 반복문을 빠져나오면 된다.

2. sys.stdin.readlines()

1
2
3
4
5
import sys
lines = sys.stdin.readlines()
for line in lines:
    A, B = map(int, line.split())
    print(A+B)

readlines() 메서드는 파일 전체를 읽은 뒤, 각 라인을 List에 담아 반환한다. (\n 포함) 즉 리스트이기 때문에 for문을 이용하여 파일의 라인 수 만큼만 반복하도록 할 수 있다.

This post is licensed under CC BY 4.0 by the author.