문제 링크입니다: https://www.acmicpc.net/problem/1541
간단한 수학문제였습니다. 뺄셈 이후마다 괄호를 치면 최소가 됩니다.
#include <iostream>
#include <string>
using namespace std;
string str;
int minResult(void)
{
int result = 0;
string temp = "";
bool minus = false;
for (int i = 0; i <= str.size(); i++)
{
//연산자일 경우
if (str[i] == '+' || str[i] == '-' || str[i] == '\0')
{
if (minus)
result -= stoi(temp);
else
result += stoi(temp);
temp = ""; //초기화
//괄호를 뺄셈 이후에 치면 최소
if (str[i] == '-')
minus = true;
continue;
}
//피연산자일 경우
temp += str[i];
}
return result;
}
int main(void)
{
cin >> str;
cout << minResult() << endl;
return 0;
}
개발환경:Visual Studio 2017
'알고리즘 > BOJ' 카테고리의 다른 글
백준 11509번 풍선 맞추기 (0) | 2018.04.29 |
---|---|
백준 1500번 최대 곱 (0) | 2018.04.29 |
백준 2421번 저금통 (0) | 2018.04.28 |
백준 2780번 비밀번호 (0) | 2018.04.27 |
백준 15701번 순서쌍 (0) | 2018.04.27 |