728x90
https://www.acmicpc.net/problem/1541
1541번: 잃어버린 괄호
첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다
www.acmicpc.net
1. 부호를 만나면 결괏값을 담을 변수에 더한다.
2. 만약 부호가 음수라면 모든 수를 음수로 더한다
- 괄호를 적절히 사용하므로 빼기 연산 뒤에 괄호를 사용하면 모든 수를 음수로 만들 수 있으므로 음수로 더함
- 1 + 2 - ( 3 + 4 + 5 + 6 ) - (7 + 8 + 9.....)
#pragma warning(disable:4996)
#include <stdio.h>
char sic[100];
int result, swi = 1, temp, idx;
int main()
{
scanf("%s", sic);
for (int i = 0; sic[i]; i++)
{
if (sic[i] == '-' || sic[i] == '+') // 부호를 만나면 더한다.
{
if(sic[i] == '-') // 빼기 연산이라면 모든 수를 음수로 더한다
swi = -1;
result += temp;
temp = 0; // 초기화
}
else if('0' <= sic[i] && sic[i] <= '9')
temp = (10 * temp) + (sic[i] - '0') * swi;
}
printf("%d", result + temp); // 마지막 수를 만들고 탈출하므로 끝까지 처리
return 0;
}
728x90
'알고리즘' 카테고리의 다른 글
백준 C++ - 도서관(1461) 그리디 알고리즘 (0) | 2023.04.11 |
---|---|
C++ - 아이템 줍기 (BFS) (0) | 2023.04.09 |
백준 C++ - 욕심쟁이 판다(1937) DFS, DP(memoization) (0) | 2023.04.04 |
백준 C++ - N-Queen (브루트포스, 백트래킹) (0) | 2023.03.31 |
백준 C++, PYTHON - 예산 (이진 탐색) (0) | 2023.03.29 |