失われたかっこ
1764 ワード
失われたかっこ
質問する
ポテンシャル俊は正数と+,−と括弧で式を構成した.そして勢俊はかっこを全部削除した.
そして勢俊適はかっこをつけて、この式の値を最小限に抑えようとした.
この式の値を最小にするプログラムを適切なかっこで書いてください.
入力
最初の行には数式があります.式は「0」~「9」、「+」、「-」で構成され、最初の文字と最後の文字は数値です.また、2つ以上の演算子が連続して現れず、5桁よりずっと連続した数値はありません.数はゼロから始まることができます.入力式の長さは50以下です.
しゅつりょく
1行目に正解を出力します.
コード#コード#
#include <iostream>
using namespace std;
/* 조건 */
#define MAX_LENGTH 51
/* 변수 */
int num = 0, result = 0;
bool isPlus = true;
string expression;
char symbol;
/* 함수 */
int main() {
/* 입력 */
cin >> expression;
/* 풀이 */
int exp_len;
exp_len = expression.length();
for(int i = 0; i < exp_len; i++) {
if(isdigit(expression[i])) {
num *= 10;
num += expression[i] - '0';
} else {
if(isPlus) {
result += num;
num = 0;
} else {
result -= num;
num = 0;
}
if(expression[i] == '-') isPlus = false;
}
}
if(isPlus) {
result += num;
num = 0;
} else {
result -= num;
num = 0;
}
/* 출력 */
cout << result;
}
に答える
簡単です.
逆に入力を解析するのに時間がかかりました.
本当はcinを使おうと思っていたのですが諦めてしまいました...
括弧が無限大の場合、"-"が表示された後のすべての数字は負の数にすることができるので、isPlusというflagを設定して、後の数字を削除します.
ソース
白準[0541]紛失したかっこ
https://www.acmicpc.net/problem/1541
Reference
この問題について(失われたかっこ), 我々は、より多くの情報をここで見つけました https://velog.io/@kkoala/01541-잃어버린-괄호テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol