본문 바로가기
Programming Solve/BOJ

BOJ 1541 잃어버린 괄호 / C++

by msm1029 2021. 7. 16.
반응형

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

 

1541번: 잃어버린 괄호

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

www.acmicpc.net

 

문제 풀이 및 코드

주석 참고

// '-'가 나온 시점부터 음수이므로
// '-'가 나올때까지 모두 더하고 '-'가 나오면 모두 뺀다.

#include <iostream>
#include <string>
using namespace std;

int main() {
	string equation;
	cin >> equation;

	string tmp = "";
	bool neg = false; //음수 시작
	int answer = 0;

	for (int i = 0; i < equation.size(); i++) {
		if (equation[i] == '+' || equation[i] == '-') {
			if (neg) answer -= stoi(tmp);
			else answer += stoi(tmp);
			tmp = "";

			if (equation[i] == '-') neg = true;
		}
		else {
			tmp += equation[i];
		}
	}

	if (neg) answer -= stoi(tmp);
	else answer += stoi(tmp);

	cout << answer;
}
반응형

'Programming Solve > BOJ' 카테고리의 다른 글

BOJ 3040 - 백설 공주와 일곱 난쟁이 / C++  (0) 2021.08.26
BOJ 10815 숫자 카드 / C++  (0) 2021.07.16
BOJ 1764 듣보잡 / C++  (0) 2021.07.16
BOJ 3046 / 10162 / 10930 / 16968 / Python  (0) 2021.03.20
BOJ 20953 / C++  (0) 2021.03.02