본문 바로가기

Algorithm

(C++) - 백준(BOJ) 2935번 : 소음

반응형

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

 

2935번: 소음

문제 수업 시간에 떠드는 두 학생이 있다. 두 학생은 수업에 집중하는 대신에 글로벌 경제 위기에 대해서 토론하고 있었다. 토론이 점점 과열되면서 두 학생은 목소리를 높였고, 결국 선생님은 크게 분노하였다. 이렇게 학생들이 수업 시간에 떠드는 문제는 어떻게 해결해야 할까? 얼마전에 초등학교 선생님으로 취직한 상근이는 이 문제를 수학 문제로 해결한다. 학생들을 진정시키기 위해 칠판에 수학 문제를 써주고, 아이들에게 조용히 이 문제를 풀게 한다. 학생들이 문제

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
#include <algorithm>
#include <string>
#include <cmath>
using namespace std;
int main() {
    string a="", b="", c;
    cin >> a >> c >> b;
    if (c == "+")
    {
        int size = max(a.size(), b.size());
        int tmp = a.size() - b.size();
        string plus = "";
        if (tmp < 0//b.size()가 더 큰 경우
        {
            for (int i = 0; i < abs(tmp); i++)//abs()절대값 반환 함수
                plus += "0";
            a = plus + a;
        }
        else//a.size()가 더 큰 경우
        {
            for (int i = 0; i < abs(tmp); i++)
                plus += "0";
            b = plus + b;
        }
        for (int i = size-1; i >= 0; i--)
        {
            if(b[i]-'0')
                a[i] = ((a[i] - '0'+ (b[i] - '0')) + '0';
        }
        cout << a;
    }
    else
    {
        int size = a.size() - 1 + b.size() - 1;
        cout << "1";
        while(size--)
            cout << 0;
    }
}
cs