백준 10951번 - python

suji·2022년 4월 12일

백준-문제풀이

목록 보기
3/4
post-thumbnail

문제

두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)

출력

각 테스트 케이스마다 A+B를 출력한다.

문제 파악

이 문제는 몇개의 입력을 받는지 정해지지 않는다.
그렇기에 while문으로 계속 돌리면 에러가 난다.
어떻게 해야 while문이 계속 돌아가지 않으면서 입력을 받으면 출력되는지 생각해 봐야한다.

구글링 결과...

예외처리 try-except문에 대하여 공부할 수 있었다.

매우 정리를 잘해놓은 블로그를 발견했고 이것을 참고하였다.
https://withcoding.com/85

파이썬의 예외처리

에러가 발생했을 때 프로그램의 흐름을 파악하고
프로그램이 죽지 않도록!
에러가 발생할만한 곳에서 에러를 처리한다

예외처리 : 에러가 발생하더라도 에러를 처리하는 것

  • try:
    에러가 발생할 것 같은 곳을 찾아 try구문에 코드 작성
  • except:
    에러가 발생했을 때 처리할 코드 작성
  • else:
    예외가 없을 때 실행될 코드
  • finally:
    예외와 상관없이 무조건 시행될 코드

1. 특정예외 처리하기

except **에러이름** :
	print("에러이름") 

발생한 에러가 '에러이름'에 해당되는 특정 에러일 때 예외처리 된다.

2. 예외 변수 사용하기

except NameError as e:
	print(e)
    print(type(e))

as 다음에 예외변수를 지정하면 예외관련 정보를 얻을 수 있다.
print(e)는 예외 메세지를 출력한다.
print(type(e))는 예외 타입을 출력한다.

3. 예외 만들어 사용하기

class TestError(Exception):
    def __init__(self, value):
        self.value = value
    def __str__(self):
        return self.value

try:
    raise TestError('직접만든 오류!')
except Exception as e:
    print(e)
    print(type(e))

Exception Class를 상속받아 직접 예외를 만들어 사용할 수 있다.
에러메세지의 출력을 변경하려면 __str__함수를 재정의해야한다.

문제 풀이

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

간단히 생각해보자면,
while문을 test해본다고 생각했다.
try로 '그냥 한 번 돌려보기!' 라는 뜻의 코드같다.

profile
문제를 해결하는 백엔드 개발자

0개의 댓글