https://www.acmicpc.net/problem/11899
11899번: 괄호 끼워넣기
첫 번째 줄에 S를 올바른 괄호열으로 만들기 위해 앞과 뒤에 붙여야 할 괄호의 최소 개수를 출력합니다. 불가능한 경우는 주어지지 않습니다.
www.acmicpc.net
풀이 :
- 백준 9012번과 비슷한 문제라서 이 문제를 푼다면 9012도 바로 해결할 수 있다
- 올바르지 못한 괄호의 갯수를 구하면 되는데,
( 이 나오는 경우 : 카운트한다
) 이 나오는 경우 : 카운트 된 열린 괄호가 없다면 닫힌 괄호를 카운트해주고, 있다면 차감한다
- 올바르지 못한 괄호 중 (의 갯수와 )의 갯수가 구해지는데, 그것의 합을 출력한다
코드 :
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
int main(){
cin.tie(NULL);
ios::sync_with_stdio(false);
int open, close;
string s;
cin >> s;
open = close = 0;
for(int i=0; i<s.size(); i++){
if(s[i] == '('){ //열린 괄호가 나오면 카운트
open++;
}else{
if(open > 0){ //닫힌 괄호가 들어왔고, 카운트된 열린 괄호가 있다면
open--;//합이 맞는 것이기 때문에 차감
}else{ //카운트 된 열린 괄호가 없다면
close++; //닫힌 괄호 차감
}
}
}
cout << open + close << '\n';
}
'PS_Baekjoon' 카테고리의 다른 글
[백준 C++] 9324번 : 진짜 메시지 (0) | 2023.03.28 |
---|---|
[백준 C++] 12789번 : 도키도키 간식드리미 (0) | 2023.03.27 |
[백준 C++] 20365번 : 블로그2 (0) | 2023.03.25 |
[백준 C++] 21921번 : 블로그 (0) | 2023.03.24 |
[백준 C++] 16165번 : 걸그룹 마스터 준석이 (1) | 2023.03.23 |