문제
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
코드
#include <vector>
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
int main() {
vector<int> cal;
vector<int> num;
string input;
string temp;
cin >> input;
cal.push_back(0);
for (int i = 0; i < input.size() + 1; i++) {
if (i == input.size()) {
num.push_back(stoi(temp));
temp = '0';
break;
}
if ((input[i] == '-') || (input[i] == '+')) {
num.push_back(stoi(temp));
temp = '0';
if (input[i] == '-')
cal.push_back(-1);
else
cal.push_back(1);
}
else
temp += input[i];
}
int result = num[0];
for (int i = 1; i < cal.size(); i++) {
if (cal[i] == -1) {
result -= num[i];
if (i != cal.size() - 1)
if (cal[i + 1] == 1)
cal[i + 1] *= -1;
}
else
result += num[i];
}
cout << result;
}
풀이
'코테 > Greedy' 카테고리의 다른 글
[java] 프로그래머스스쿨 연습문제 Lv.2 Greedy 문제 모음 (0) | 2023.04.28 |
---|---|
[C/C++] 백준 13305, Greedy (0) | 2023.02.09 |
[C/C++] 백준 11399, Greedy (0) | 2023.02.09 |
[C/C++] 백준 1931, Greedy (0) | 2023.02.09 |
[C/C++] 프로그래머스 스쿨 무지의 먹방라이브, Greedy (0) | 2023.02.08 |