danbibibi
article thumbnail
Published 2023. 12. 15. 14:23
BOJ 1079번: 쇠막대기 문제 풀이/백준

문제

문제 바로가기> BOJ 1079번: 쇠막대기

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

 

풀이

닫는 괄호 ')' 일 경우 두 가지 경우가 있다.

1. 쇠막대기의 끝인 경우: 자신(조각)을 정답에 더해준다 (+1)

2. 레이저의 끝인 경우 = 이전 문자가 '(': 이때까지 쌓인 쇠막대기 개수만큼 정답에 더해준다 (+siz)

#include<iostream>
using namespace std;

string str;

void input(){
    cin >> str;
}

void solution(){
    int ans=0, siz=0;
    for(int i=0; i<str.size(); i++){
        if(str[i] == '(') siz++;
        else { // str[i] == ')'
            siz--;
            if(str[i-1] =='(') ans+=siz;
            else ans++;
        }
    }
    cout << ans;
}

int main(){
    ios_base::sync_with_stdio(0); cin.tie(0);
    input();
    solution();
}

'문제 풀이 > 백준' 카테고리의 다른 글

BOJ 10157번: 자리배정  (0) 2023.12.27
BOJ 8983번: 사냥꾼  (0) 2023.12.22
BOJ 9047번: 6174  (0) 2023.12.11
BOJ 2304번: 창고 다각형  (0) 2023.09.05
BOJ 17485번: 진우의 달 여행 (Large)  (0) 2023.09.04
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로