https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
C
- 없이 +만 있을 경우는 괄호가 필요 없으므로 신경 쓸 필요없다. - 연산자만 있을 경우를 코딩해주면 됨.
최소값이 나와야 하므로 -뒤에 나온 숫자부터 묶는 것이 좋다. 만약 - 연산자 뒤에 - 연산자가 또 입력될 경우에는 끝까지 괄호로 묶을 경우 +가 되므로 두번째 - 전까지 묶는다.
#include <stdio.h>
int main() {
int a=0, b=0;
int i = 0;
char c;
for (scanf("%d", &b); scanf("%c", &c), c != 10;) {
//-일 때 i =1로 바꿈
if (c == '-') i = 1;
scanf("%d", &a);
//i=1일때, -부호가 처음 들어왔을 때 n에서 계속 뺌
if (i) b -= a;
//i=0일때, -가 아직 없거나 처음 입력받으면 n에 입력받은 수 더함
else b += a;
}
printf("%d", b);
return 0;
}
java
'공부하자 > 알고리즘' 카테고리의 다른 글
[백준] 5622번 다이얼 C, java (0) | 2022.01.13 |
---|---|
[백준] 2908번 상수 C, java (0) | 2022.01.13 |
[백준] 3009번 네 번째 점 C, java (0) | 2022.01.08 |
[백준] 1085번 직사각형에서 탈출 C, java (0) | 2022.01.07 |
[백준] 2217번 로프 C, java (0) | 2022.01.06 |