[백준] 10952번 A+B - 5 C++ 문제 풀이 while문
2019. 7. 16. 08:39ㆍ알고리즘/백준
728x90
반응형
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
입력은 여러 개의 테스트 케이스로 이루어져 있다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
입력의 마지막에는 0 두 개가 들어온다.
출력
각 테스트 케이스마다 A+B를 출력한다.
예제 입력 1
1 1
2 3
3 4
9 8
5 2
0 0
예제 출력 1
2
5
7
17
7
문제 풀이
#include <iostream>
using namespace std;
int main(void){
int a, b;
while(1){
cin>>a>>b;
if(a!=0 || b!=0)
cout<<a+b<<endl;
else
break;
}
}
a와 b의 조건만 검사하면 바로 풀리는 쉬운 문제입니다.
a와 b가 둘 다 0일 때 반복이 끝나므로
a+b == 0, a*b == 0
이런 조건을 세울 수 있지만
a, b가 정수이고 둘 다 0이어야 하므로 위의 두 조건은 성립하지 않습니다.
a == 0 && b == 0
을 써야 한다는 얘기인데 반대로
a != 0 || b != 0
a != 0 || b != 0
이걸 써도 위와 같은 의미이므로 전혀 문제가 없겠죠? 다만 차이점은 &&연산자는 좌항이 false이면 우항 연산을 하지 않는다는 것과 ||연산자는 좌항이 true이면 우항 연산을 하지 않는다는 것입니다.
이번 문제에 입력에 대해 살펴보면 0이 아닌 값과 0인 값 중에 0이 아닌 값이 더 많이 들어올 확률이 크므로 조건문을
a == 0 && b == 0
으로 바꾸면 연산이 조금 덜 들어가는 코드가 되겠네요..
출처 : https://www.acmicpc.net/problem/10952
728x90
반응형
'알고리즘 > 백준' 카테고리의 다른 글
[백준] 1110번 더하기 사이클 C / C++ 문제 풀이 while문 (0) | 2019.07.24 |
---|---|
[백준] 10951번 A+B - 4 C++ 문제 풀이 while문 (0) | 2019.07.19 |
[백준] 10871번 X보다 작은 수 C++ 문제 풀이 for문 (2) | 2019.07.15 |
[백준] 2439번 별 찍기 - 2 C / C++ 문제 풀이 for문 (0) | 2019.07.12 |
[백준] 2438번 별 찍기 - 1 C / C++ 문제 풀이 for문 (1) | 2019.07.12 |