[백준 10952 파이썬] A+B -5 - 반복문 (while True & break feat. 무한루프, 조건문)
안녕하세요.
이번에도 A+B 입니다. 번호는 5네요. 이번 문제는 반복 횟수가 정해지지 않았습니다. 반복 횟수가 없으니 정해진 횟수를 반복하는 for문은 사용하기 어렵겠군요. while문을 사용해서 무한루프를 만드는 방법을 배워보죠!
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
입력의 마지막에는 0 두 개가 들어온다.
출력
각 테스트 케이스마다 A+B를 출력한다.
문제 분석
테스트케이스마다 두개의 정수를 입력하고 덧셈 결과를 출력하는 문제입니다.
테스트케이스의 수는 제한이 없고 반복됩니다.
0 0 을 입력하면 반복이 종료됩니다.
반복 횟수가 정해지지 않았으니 while문을 쓸 수 있겠네요. while문의 기초에 대해서는 '구구단' 포스팅에서 살펴본 적이 있었죠! while 다음에는 반복문을 계속할 '조건'을 붙여줘야 합니다. 예를들면 while A>0: (A가 양수인 경우 반복)과 같이 사용하죠.
하지만 조건 부분이 밑도끝도 없이 True라면 어떨까요? 바로 무한루프가 되서 반복문을 영원히 계속하게 됩니다.
왜 그럴까요? 만약에 A=1이고 while A>0: 이면 A>0은 True겠죠? 그럼 반복문이 실행되겠죠! 이런 복잡한 단계 없이 while True라고 못박아버리면 그냥 참이구나 하고 무한루프에 빠져들게 되는거죠.
자 그럼, 테스트케이스는 무한하게 반복되기 시작했습니다. 그럼 멈추는 방법도 있어야 하지 않을까요?
문제에서는 0 0을 입력하면 멈추는 것으로 무한루프에 제한을 두고 있습니다. "0이 두번 입력되면"은 조건문이죠? if-else 문으로 해결할 수 있을 것 같네요.
그럼 '멈춰라'라는 명령은 무엇일까요? 바로 break입니다. 무한루프를 탈출하는거죠. 이제 답안을 통해 어떻게 코드로 구현되는지 살펴보겠습니다.
답안
무한반복을 시작하고,
A와 B를 입력받습니다.
A와 B가 모두 0인 경우 루프를 종료시키고,
어느 하나라도 0이 아닌 경우에는 A+B를 출력합니다.
말로 표현하는 것처럼 한줄한줄 논리를 전개하면 이해하기 쉬운 코드가 작성되는 것 같습니다.
답안은 직접 작성해 보시고, 제출도 해보시기 바랍니다!
이만 마치겠습니다.
읽어주셔서 감사합니다.
'파이썬 > BOJ_반복문' 카테고리의 다른 글
[백준 1110 파이썬] 더하기 사이클 - 반복문 (무한루프 (while True) + 조건문 (if, else)) (0) | 2023.01.21 |
---|---|
[백준 10951 파이썬] A+B -4 - 반복문 (while, try - except, EOF) (0) | 2023.01.14 |
[백준 2439 파이썬] 별 찍기 -2 - 반복문 (for, 오른쪽부터 출력) (0) | 2023.01.11 |
[백준 2438 파이썬] 별 찍기 -1 - 반복문 (for, 문자열 곱하기, 더하기) (0) | 2023.01.10 |
[백준 11022 파이썬] A+8 -8 - 반복문 ("Case #x" feat. 조금 더 아름답게 출력) (0) | 2023.01.08 |
댓글