https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 많이 연속되는 숫자는 없다. 수는 0으로 시작할 수 있다.
www.acmicpc.net
문제 설명
세준이는 양수와 +, -, 그리고 괄호를 가지고 길이가 최대 50인 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다.
그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드시오~
접근 방식
마이너스 뒤로 괄호를 설정해 나간다면 최소의 값을 만들 수 있습니다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
string str;
int minResult(){
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(){
cin>>str;
cout<<minResult()<<"\n";
return 0;
}
funny algorithms *0*~
'Algorithms > BOJ' 카테고리의 다른 글
백준 1978 - 소수 찾기 (0) | 2020.03.19 |
---|---|
백준 2839 - 설탕 배달 (0) | 2020.03.18 |
백준 2875 - 대회 or 인턴 (0) | 2020.03.17 |
백준 10610 - 30 (0) | 2020.03.16 |
백준 2217 - 로프 (0) | 2020.03.16 |