https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
그리디 알고리즘에 해당하는 문제인지는 잘 모르겠다. 한번이라도 -가 나오면 그 뒤에 +이든 -이든 상관없이 괄호에 따라 반드시 -로 만들수 있기 때문에, -가 나온 이후는 모두 빼주면 된다.
#include <cstdio>
int main(void){
int ans=0, num;
bool minus = false;
char giho;
while(1){
scanf("%d",&num);
if(scanf("%c",&giho)==-1)
break;
if(minus)
ans -= num;
else
ans += num;
if(giho=='-')
minus = true;
}
printf("%d",ans);
}
'알고리즘 문제' 카테고리의 다른 글
[C/C++ 백준 1946번] 신입 사원 (Silver 1) (0) | 2020.08.04 |
---|---|
[C/C++ 백준 2529번] 부등호 (Silver 2) (0) | 2020.08.03 |
[C/C++ 백준 1931번] 회의실 배정 (Silver 2) (0) | 2020.08.02 |
[C/C++ 백준 11399번] ATM (Silver 3) (0) | 2020.08.02 |
[C/C++ 백준 2217번] 로프 (Silver 4) (0) | 2020.08.02 |