Problem Solving/Baekjoon

[백준 / BOJ] 1541 잃어버린 괄호

msmn 2021. 3. 16. 01:28
728x90

알고리즘 분류: 문자열, 그리디, 수학

문제 링크: www.acmicpc.net/problem/1541

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

  • '-' 기호가 나온 후 모든 연산을 '-'로 해주면 최솟값이 되기 때문에 sign으로 체크해주었다.
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <iostream>
#include <climits>
#include <cstring>
#include <iomanip>
#include <bitset>
#include <string>
#include <vector>
#include <cmath>
#include <deque>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>

#define ll long long
#define INF 1e9

using namespace std;

//https://www.acmicpc.net/problem/1541 잃어버린 괄호

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    string s;
    cin >> s;
    string num = "";
    int ans = 0;
    int sign = 1;
    s += '.';
    
    for(int i=0; i<s.size(); i++) {
        if(isdigit(s[i])) {
            num += s[i];
            continue;
        }
        ans += stoi(num) * sign;
        if(s[i] == '-') sign = -1;
        num = "";
    }
    cout << ans;
    
    return 0;
}

 

728x90

'Problem Solving > Baekjoon' 카테고리의 다른 글

[백준 / BOJ] 1992 쿼드트리  (0) 2021.03.16
[백준 / BOJ] 11866 요세푸스 문제 0  (0) 2021.03.16
[백준 / BOJ] 2231 분해합  (0) 2021.03.16
[백준 / BOJ] 2798 블랙잭  (0) 2021.03.16
[백준 / BOJ] 1002 터렛  (0) 2021.03.15