하루 한 접시

[백준]9012번: 괄호 [C#]

NaZZU 2024. 3. 20. 00:54

첫째 줄에는 반복 횟수가, 둘째줄 부터는 입력이 주어진다.

괄호가 완전히 닫히게 되면 VPS라고 한다.

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
using System.IO;
using System.Text;
 
namespace 연습장
{
    internal class Program
    {
        static void Main(string[] args)
        {
            int T = int.Parse(Console.ReadLine());
            
            for(int i = 0; i < T; i++)
            {
                int balance = 0;
                string PS = Console.ReadLine().Trim();
                for(int j = 0; j < PS.Length; j++)
                {
                    if (PS[j] == '(')
                        balance++;
                    else if (PS[j] == ')')
                        balance--;
                    if (balance < 0)
                        break;
                }
                if (balance == 0)
                    Console.WriteLine("YES");
                else
                    Console.WriteLine("NO");
            }
        }
    }
}
 
cs

 

'('와 ')'의 균형을 잡아줄 변수 하나를 만들고, '(' 라면 +1 //  ')' 라면 -1을 한다

'('의 수가 더 많은 경우에는 0이 아닌 양의 정수로 balance의 값이 나오기 때문에 NO(중요. 대문자임)

')'의 수가 더 많다면 루프에서 조건에 걸려서 나가게 된다.

마찬가지로 ')'로 시작한다면 절대로 VPS가 아니기 때문에 첫번째 루프에서 break된다.