doistory

[BOJ][Python] 백준10952번: A+B - 5 / break와 print()위치 본문

[ 공부중 ]/코딩테스트

[BOJ][Python] 백준10952번: A+B - 5 / break와 print()위치

떡볶이최고 2023. 12. 31. 15:53

 

브론즈5 문제들을 풀면서 기본 문법들의 활용을 알아가고있는 단계 같다.

조건문, 반복문, break등 용법을 알지만, 문제를 풀며 직접 실행하니까 더 이해가 잘 되는것 같다.

역시 실전이다!!

 

이 문제는 아주 쉬운 문제임에도 불구하고 아주 초보인 나는 틀렸었다.

 

3일전에 틀렸었는데.... python 문법들을 복습하며 다시 풀어보며 정답을 알게됐다.

 

예제 출력을 잘 보아아 한다. 0 0이 나온 경우에 출력되는게 없다.

따라서 break와 print()를 적절한 위치에 배치했어야 하는데, 이 과정에서 부족함이 있어서 틀렸었다.

 

처음엔 배운 문법 내용들을 활용해서 아래처럼 작성했었다.

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

 

 

 

그러나 이렇게 작성하면,, 왼쪽의 출력 결과처럼

입력의 마지막에 들어온 0 0까지 연산되어 0을 출력하고 반복문을 종료한다.

 

따라서 print()를 이후에 break 하던 코드를
print() 이전에 break 가 실행되도록 수정해야한다.

 

그러면 0 0으로 들어온 값을 연산하지 않고 반복문을 종료할 수 있다.

아직 배운 문법 지식들의 파편을 단순히 조합해보며 답을 찾아가는 과정에서 이런 실수들이 발생하고있다.

 

 

 

 

정답

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

 

이렇게되면 0이 아닌 a, b 값이 들어왔을 때  0 0 이 들어왔을 때 반복문이 멈추고 0 을 출력하지 않는다.