https://www.acmicpc.net/problem/9012
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
#include <iostream>
#include <string>
using namespace std;
int main()
{
// 입출력 향상
ios_base::sync_with_stdio(false);
cin.tie(NULL);
// 테스트 횟수 입력받고 버퍼 비우기
int n;
cin >> n;
cin.ignore();
while (n--)
{
string line;
getline(cin, line);
// '(' 와 ')' 갯수차이를 구하기
// '(' : +1
// ')' : -1
int sum = 0;
for (char c : line)
{
if (c == '(')
{
sum++;
}
else if (c == ')')
{
sum--;
}
// 입력받은 '('보다 ')'가 많을 때
if (sum < 0)
{
break;
}
}
// '(' 와 ')' 갯수가 동일하면 YES, 아니면 NO 출력
cout << ((sum == 0) ? "YES" : "NO") << '\n';
}
return 0;
}
Colored by Color Scripter
|
스택을 활용하는 방법도 있다!
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ]1406번: 에디터(c++) (0) | 2020.04.15 |
---|---|
[BOJ]1874번: 스택 수열(c++) (0) | 2020.04.14 |
[BOJ]9093번: 단어 뒤집기(c++) (0) | 2020.04.14 |
[BOJ]11721번: 열 개씩 끊어 출력하기(c++) (0) | 2020.04.13 |
[BOJ]10828번: 스택(c++) (0) | 2020.04.12 |
댓글