파이썬/예제

백준 10952번 A+B (4) - 반복문 조건에 주의

thpop 2025. 5. 18. 14:39
반응형

백준 10952번 / A+B : https://www.acmicpc.net/problem/10952

 

이 문제는 그동안 풀어본 A+B를 출력하는 프로그램과 같으나, 차이점이 있다면 테스트 케이스의 개수가 미리 주어지지 않고, 입력의 마지막 줄에는 0 두 개가 들어오며 이 입력이 주어지면 프로그램을 종료해야 한다는 것이다.

 

입력의 종료 조건이 주어졌으므로, while 반복문을 사용하여 이 조건을 만족할 때까지 계속해서 입력을 받고 처리하는 방식으로 접근할 수 있다.

 

풀이의 흐름은 다음과 같다.

 

  • 먼저 두 정수 A와 B를 한 번 입력받는다.
  • while 루프의 조건으로 A와 B가 둘 다 0이 아닌 동안 반복하도록 설정한다.(문제에 따르면, "입력의 마지막에는 0 두 개가 들어온다"고 했으므로, a != 0 and b != 0이 더 적절해 보인다.)
  • 루프 내부에서는 A+B를 출력한다.
  • 다음 입력을 받기 위해 루프의 마지막 부분에서 다시 A와 B를 입력받는다. 이 새로운 A, B 값으로 다음 while 루프의 조건을 검사하게 된다.

이때 '다음 입력을 받기 위해 루프의 마지막 부분에서 다시 A와 B를 입력받는다.'부분이 중요하다.

 

만약  A와 B를 입력받는 부분이 출력보다 앞에 위치하게 되면 0 0을 입력했을 때, 0을 출력하게 되어버린다.

 

내가 만든 코드는 아래와 같다.

a,b = map(int, input().split())

while a!=0 and b!=0:
    print(a+b)
    a,b = map(int, input().split())

 

 

출력 결과는 다음과 같다.

반응형