-등장 이후로 전부 -로 계산하면 되는 쉬운 문제였으나..처음에 어렵게 접근하여 스택쓰고 난리났다..
괄호는 맘대로 칠 수 있으므로 -가 등장한 이상 뒤에 수를 전부 -로 계산가능하다.
식에서 숫자가 마지막으로 등장하기 때문에 i<len으로 조건을 세우면 마지막 숫자를 위해 한번더 계산을 해줘야 한다. 번거로움을 막고자 i<=len으로 설정하여 처리했다.
#include <stdio.h>
#include <string.h>
#include <cctype>
using namespace std;
char str[51];
int main(void)
{
scanf("%s", str);
int len = strlen(str);
int i = 0;
bool minus = false;
int tmp = 0, result = 0;
while (i <= len)
{
while (isdigit(str[i]))
{
tmp = tmp * 10 + str[i] - '0';
i++;
}
if (minus)
result -= tmp;
else
result += tmp;
if (str[i] == '-')
{
minus = true;
}
tmp = 0;
i++;
}
printf("%d\n", result);
return 0;
}
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
[백준 2012] 등수 매기기 (0) | 2020.12.16 |
---|---|
[백준 1543] 문서 검색 (0) | 2020.12.16 |
[백준 2011] 암호코드 (0) | 2020.12.15 |
[백준 1629] 곱셈 (1) | 2020.12.13 |
[백준 1495] 기타리스트 (0) | 2020.12.13 |
댓글