안녕하세요. 오늘은 괄호없는 사칙연산을 할 거예요.
https://www.acmicpc.net/problem/16503
숫자를 차례대로 a,b,c, 연산기호를 차례대로 d,e라고 하고 계산을 cal(숫자,기호,숫자)로 한다면 가능한 경우는 cal(cal(a,d,b),e,c)거나 cal(a,d,cal(b,e,c))입니다. 이 중 최대/최소를 구해주면 됩니다.
#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;
ll cal(ll a, char c, ll b)
{
if (c == '+') return a + b;
if (c == '-') return a - b;
if (c == '*') return a * b;
if (c == '/') return a / b;
}
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
ll a, b, c;
char d, e;
cin >> a >> d >> b >> e >> c;
ll x = cal(cal(a, d, b), e, c), y = cal(a, d, cal(b, e, c));
cout << min(x, y) << "\n" << max(x, y);
}
감사합니다.