Computer Science/Algorithm

BOJ 10951: A+B -4 [Python 3]

무니화니 2022. 12. 30. 19:06

해당 문제는 더하기 연산을 하면 되는 단순한 문제처럼 보인다.

하지만, 이 문제의 포인트는 처음에 몇개의 연산을 해야하는지, 제한을 주지 않았다.

그렇기에, input의 끝, EOF 까지 input을 받아야한다.

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

#================

while True:
    try:
        a,b=map(int,input().split())
        print(a,b)
    except EOFError:
        break

두 가지 방법으로 해당 문제를 해결 할 수 있다.

 

lines에서 모든 줄의 input을 받는 거다.

이 때 사용하는 함수가 sys.stdin 모듈의 readlines(num)인데, 이 함수는 num번째 index까지 내용을 모두 입력받는다.

default가 -1이여서, 따로 설정하지 않으면 끝가지 입력받는다.

각 줄의 line을 받아서, 출력한다.

 

두번재 방법은, 계속계속 while True 반복문을 통해 받다가,

이제 EOF, end of file에서 오류가 뜰 때, EOFError를 try, except 문으로 빼주는 것이다.

EOF까지 도착하면, 해당 오류가 발생해서 

 

(try문은 오류가 나기 전가지는 정상적으로 작동하다가,

만약 오류가 발생하면, except로 보낸다.

except 에서 해당 오류를 명시하면, 명시한 오류가 발생할 때 해당 문장이 실행된다.)