BOJ 2935번 소음 문제
A와 B의 입력이 최대 100자리까지 들어올 수 있어서 string을 이용해서 처리했다.
곱하기일 경우엔 1을 출력하고 A와 B의 0의 개수 합 만큼 0을 출력하면 된다.
더하기일 경우엔 같은 자리면 2 출력후 0의 개수 출력을 한다.
자리수가 다르면 1 출력 후 (0의 개수 차이-1)만큼 0을 출력하고, 1을 다시 출력한 후 작은 0의 개수를 출력하면 된다.
2935.cpp
#include <bits/stdc++.h>
using namespace std;
void print0(int t) {
for (int i = 0; i < t; i++) {
cout << "0";
}
}
int main() {
string a, b;
char o;
cin >> a >> o >> b;
int a0 = a.size() - 1;
int b0 = b.size() - 1;
if (o == '+') {
if (a0 == b0) {
cout << "2";
print0(a0);
} else {
cout << "1";
int big = max(a0, b0);
int small = min(a0, b0);
print0(big - small - 1);
cout << "1";
print0(small);
}
}
if (o == '*') {
cout << "1";
print0(a0 + b0);
}
}
'알고리즘 & SQL > 백준(BOJ)' 카테고리의 다른 글
백준 16205번 : 변수명 C++ (0) | 2018.11.09 |
---|---|
백준 2845번 : 파티가 끝나고 난 뒤 C++ (0) | 2018.11.09 |
백준 2583번 : 영역 구하기 C++ (0) | 2018.11.07 |
백준 1697번 : 숨바꼭질 C++ (0) | 2018.11.06 |
백준 2331번 : 반복수열 C++ (0) | 2018.11.06 |