정보/백준 문제풀이
백준 10799번 쇠막대기 C++
FeatherCoder
2023. 12. 16. 23:44
문제 링크 : https://www.acmicpc.net/problem/10799
이 문제는 기말고사 마지막 시험에서 시간이 남았을 때 심심해서 푼 문제인 만큼, 어렵지 않다.
문제 풀이
문제에서는 레이저로 절단된 쇠막대기의 조각 개수를 묻는 문제이다.
단순하게 기존 쇠막대기 개수에 각 레이저들이 자른 쇠막대기의 개수들을 다 더해주기만 하면 된다. 그 방법으로 "()" 앞에 있는 "("개수에서 ")"개수를 빼주는 식으로 셌다. 또 기존 쇠막대기 개수는 "()"에 포함되는 ")"를 제외한 ")"의 개수를 세주었다.
코드
#include <cstring>
#include <iostream>
using namespace std;
int main()
{
int R=0,N,d=0,n=0,i;
string str;
cin>>str;
N = str.length();
for(i=0;i<N;i++)
{
if(str[i]=='(')
{
R++;
}
else
{
if(str[i-1]=='(')
{
R --;
d += R;
}
else
{
R--;
n++;
}
}
}
cout<<n+d;
}