Notice
Recent Posts
Recent Comments
Link
알고리즘 모음(C++)
백준 2935 - 소음(C++) 본문
문제 링크입니다. https://www.acmicpc.net/problem/2935
더하기와 곱하기를 하는 문제입니다.
숫자의 자릿수가 최대 100이기에 일반적인 정수형 변수로는 구할 수 없습니다.
따라서 문자열을 통해 답을 구해야합니다.
곱하기의 경우에는 0의 개수만 샌 뒤, 이를 뒤에 붙여주기만 하면 됩니다.
더하기의 경우에는 2개 문자열의 0의 개수를 샌 뒤, 같다면 시작을 2로 하고 0을 붙여줍니다.
다르다면 해당 위치에 1을 놓기만 해주면 됩니다.
자세한 것은 코드를 참고해주세요.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <queue>
#include <vector>
#include <cstring>
#include <cmath>
#include <string>
using namespace std;
string x, y;
int zero_x, zero_y;
string add;
int main(){
cin.tie(0);
cout.tie(0);
cin >> x >> add >> y;
for(int i = 0; i < x.size(); i++){
if(x[i] == '0') zero_x++;
}
for(int i = 0; i < y.size(); i++){
if(y[i] == '0') zero_y++;
}
if(add == "*"){
int zero = zero_x + zero_y;
cout << "1";
for(int i = 1; i <= zero; i++) cout << "0";
}
else{
if(zero_x == zero_y){
cout << "2";
for(int i = 1; i <= zero_x; i++) cout << "0";
}
else{
int maxi = max(zero_x, zero_y);
int mini = min(zero_x, zero_y);
cout << "1";
for(int i = maxi; i >= 1; i--){
if(i == mini + 1) cout << "1";
else cout << "0";
}
}
}
return 0;
}
질문 및 조언은 댓글을 남겨주세요
'백준' 카테고리의 다른 글
백준 1120 - 문자열(C++) (0) | 2023.06.11 |
---|---|
백준 1213 - 펠린드롬 만들기(C++) (0) | 2023.06.11 |
백준 1919 - 애너그램 만들기(C++) (0) | 2023.06.09 |
백준 5218 - 알파벳 거리(C++) (2) | 2023.06.09 |
백준 1652 - 누울 자리를 찾아라(C++) (0) | 2023.06.04 |