본문 바로가기
공부하자/알고리즘

[백준] 1541번 잃어버린 괄호 C

by snbrin 2022. 1. 11.

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