[백준10799] 쇠막대기 레이저로 절단하기 (C++)
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main() {
int sum = 0;
string str;
stack<char> s;
cin >> str;
int flag;
for (char c : str) {
if (c == '(') {
s.push('(');
flag = 1;
}
else {
s.pop();
if (flag == 1) { // 레이저
if (s.size()) {
sum += s.size();
}
}
else
sum += 1;
flag = 0;
}
}
cout << sum;
return 0;
}
flag 변수를 이용해 레이저인지 괄호의 끝인지를 구분했다. 레이저로 절단할 때마다 sum에 스택 사이즈만큼을 더해주고, 괄호의 끝을 만나면 1을 더해주었다.
Author And Source
이 문제에 관하여([백준10799] 쇠막대기 레이저로 절단하기 (C++)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@yoohoo030/백준10799-쇠막대기-레이저로-절단하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)