우당탕탕 파이썬 with 하루하나 알고리즘

백준 10952 파이썬 - While문으로도 A + B를 출력할 수 있다고?!

hyxndy 2022. 3. 23. 23:26

백준 10952번 - A+B -5 with Python

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

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

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


https://www.acmicpc.net/problem/10952

 

10952번: A+B - 5

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

www.acmicpc.net


이제 새로운 문법 While문!

While문은 for문과 동일한 반복문이다.

하지만 쓰이는 상황이 다르다.

for문은 범위가 주어졌을 때, 즉 반복할 횟수를 알고 있을 때 사용하는 것이었다면,

while문은 특정한 조건이 주어졌을 때 반복을 진행한다.

 

그래서 한가지 주의해주어야 할 점이 있다면

for문은 따로 이 반복문을 멈춰!라는 말이 없어도 특정 횟수를 채우게 되면 반복문이 끝이나지만

while문은 멈춰달라는 말을 해주어야 한다. 즉, 조건을 계속 만족하게 된다면 while문도 계속 돌아간다는 소리다.

그래서 while문이 마지막엔 반복을 멈출 수 있도록 특별한 조치를 해주어야 한다.

 

while문의 형태

while <조건문> :
    <실행할 문장1>
    <실행할 문장2>
    <실행할 문장3>
    ...

while문은 조건문이 참인 동안에 while문 아래의 문장이 반복해서 수행된다.

 

만약 어떤 특정한 상황에서 while문을 멈추게 하고 싶다면?

while <조건문> :
    <실행할 문장1>
    <실행할 문장2>
    <실행할 문장3>
    if <특정한 상황>:
    	break

if문을 사용해 특정한 상황이라면 실행문을 멈춰라!라고 표현해줄 수 있겠다.

break문은 실행하고 있는 것들을 중지시키라는 명령어이다.

 

그럼 문제상황을 다시 보자.

더보기

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

 

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

 

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

A와 B가 0보다 크고 10보다 작을 때 A + B를 출력하고,

마지막에 0 0을 입력받으면 반복문을 멈춘다.

 

<조건문>에 0<A<10 and 0<B<10 을 입력하고 특정한 상황에 A==0 and B==0을 넣어주면 되겠다.

반복할 행위들은 A+B를 출력하게 하고, 다시 A,B를 다른 인자들로 받아야하므로

print(A+B)
A,B=map(int,input())

을 넣어주면 된다.

 

그럼 코드로 작성해보자.

<코드>

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

 

A+B가 잘 출력되는 것을 볼 수 있고, 0 0을 입력했더니 반복문이 잘 끝난 것을 볼 수 있다.