본문 바로가기

알고리즘 문제풀이

쇠막대기[백준 10799]

https://www.acmicpc.net/problem/10799

 

c언어에서 top 변수를 써서 스택을 구현하면 된다. 

 

#include <stdio.h>
#include <string.h>

int main() {
    char ir[100001];
    int stack[100001];
    int top = -1;
    int cnt = 0;

    // 입력 받기
    scanf("%s", ir);
    int len = strlen(ir);

    for (int i = 0; i < len; i++) {
        if (ir[i] == '(') {
            stack[++top] = '(';
        } else {
            if (ir[i - 1] == '(') {
                top--;
                cnt += top + 1; // 현재 쇠막대기들을 카운팅합니다.
            } else {
                top--;
                cnt += 1; // 나머지 부분을 세는 것입니다.
            }
        }
    }

    printf("%d\n", cnt);
    return 0;
}

'알고리즘 문제풀이' 카테고리의 다른 글

공주님의 정원[백준 2457]  (0) 2024.07.18
팀 이름 정하기[백준 1296]  (0) 2024.07.17
도키도키 간식드리미[백준 12789]  (1) 2024.07.11
풍선 터뜨리기[백준 2346]  (0) 2024.07.10
스택 2 [백준 28278]  (0) 2024.07.09