본문 바로가기
I can do it on my own!/백준

[백준] 10952번 파이썬(Python)

by zivvon 2023. 5. 6.
목차 접기

문제

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

입력

입력은 여러 개의 테스트 케이스로 이루어져 있다.

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

입력의 마지막에는 0 두 개가 들어온다.

출력

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


문제 파악하기

1) 테스트 케이스의 수가 주어지지 않음

2) 입력에 0 0이 들어오면 프로그램 종료

 

'오답 돌아보기'for문에만 미쳐있는 나는 while문의 존재여부를 깜빡하고 난수를 생성하려 했다.for문의 매개변수로 난수를 넣고 반복을 실행하다 입력 값 모두가 0이 될 때 break문을 넣어 프로그램을 종료하려고 했는데, 파이썬의 난수 생성 방법을 알아보니 'random' 모듈을 import 해와야 할뿐더러 범위를 지정해야 난수가 생성되는 메소드들이 대개였다. 따라서 이 방법은 문제 의도와 다르다는 것을 깨달았고 뒤늦게 while문 사용을 시도했다.

 

'정답 코드'

while True :
    A, B = map(int, input().split())
    
    if A == 0 and B == 0 :
        break;
        
    print(A + B)

⚠️ 이 때 if문의 위치와 print() 함수의 위치를 주의하자!

print() 함수가 if문보다 선행하게 된다면 입력값으로 0 0 이 들어왔을 때 output이 나와버리기 때문이다.

 

'끝내며...'

for문 문제만 미치게 풀었다고 while문의 존재를 깜빡한 내가 한심하다.

난수를 생각해 for문으로 풀어보려한 시도는 좋았지만 문제의도를 빨리 파악해 문제를 빠르게 푸는 연습을 해야겠다.