PS/Baekjoon Online Judge

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

kimyoungrok 2021. 8. 4. 11:49

백준 - 1541


풀이

숫자가 아닐 때까지 숫자로 변환해 temp에 저장하다가 부호를 만나면 sum에 저장했다.

처음에 숫자가 입력되므로 양수이기 때문에 '-'일 때, sub[0]에 저장을 해주고 sub[1] 이후로는 빼줄 수를 저장했다.


소스코드

#include <stdio.h>
#include <ctype.h>
#include <string.h>
int main() {
    char str[51];
    scanf("%s", str);
    int len = strlen(str), sub[25] = {0,}, cnt = 0, sum = 0, temp = 0;
    for (int i = 0; i <= len; i++) 
        if (isdigit(str[i]))
            temp = temp*10 + str[i] - '0';
        else{
            sum += temp;
            if (str[i] == '-' || i == len) {
                sub[cnt++] = sum;
                sum = 0;
            }
            temp = 0;
        }

    int result = sub[0];
    for (int i = 1; i < cnt; i++)
        result -= sub[i];
    printf("%d", result);
}

출처

 

1541번: 잃어버린 괄호

첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다

www.acmicpc.net

 

'PS > Baekjoon Online Judge' 카테고리의 다른 글

[백준 2630] 색종이 만들기 [C]  (0) 2021.08.05
[백준 1026] 보물 [C]  (0) 2021.08.05
[백준 10953] A+B - 6 [C]  (0) 2021.08.04
[백준 10817] 세 수 [C]  (0) 2021.08.04
[백준 2556] 별 찍기 - 14 [C]  (0) 2021.08.04