[코딩테스트 준비 C++] 잃어버린 괄호

정우·2022년 8월 20일
0
post-thumbnail

오늘 푼 문제

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

잃어버린 괄호

  • 풀이 방식
    입력값을 string타입으로 가져오고 문자 하나하나 받아온 뒤 연산자가 나올 때 마다 int타입으로 바꾼뒤 더하거나 빼는 연산과정을 사용했다.

나의 풀이

#define _CRT_SECURE_NO_WARNINGS

#include <iostream>
#include <string>

using namespace std;

int main() {

	string s;

	cin >> s;

	string number;

	bool Minus = false;

	int result = 0;

	for (int i = 0; i <= s.size(); i++) {
		if (s[i] == '-' || s[i] == '+' || i == s.size()) {
			if (Minus) {
				result -= stoi(number);
				number = "";
			}
			else {
				result += stoi(number);
				number = "";
			}
		}
		else {
			number += s[i];
		}

		if (s[i] == '-') {
			Minus = true;
		}

	}

	cout << result;

	return 0;
}

문제 의도는 괄호를 쳐서 최소값을 만들어내는 것인데,
예를 들어 55-50+40이라면 55-(50+40)이 최소값인데 결론적으로, 다음과 같은 연산이 되도록 식의 순서를 수정했다.

profile
개발 일기장

0개의 댓글