문제
문제 바로가기> BOJ 1079번: 쇠막대기
풀이
닫는 괄호 ')' 일 경우 두 가지 경우가 있다.
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 |