본문 바로가기

Study/Algorithm

[Level 2] 3. 올바른 괄호

3. 올바른 괄호


Algorithm - Level 2


- 풀이


( 로 시작하여 ) 로 끝나야 한다. 따라서 ) 로 시작한다면 False.


또한 ( 와 ) 는 pair 이므로 ( 혹은 ) 하나만 존재하는 문자열도 False


( 을 만나면 count를 증가시키고, ) 을 만나면 count를 감소시킨다.


+ 최종 count가 0이라면 올바른 괄호이며, 0이 아니라면 올바른 괄호가 아니다.


+ 진행 도중 count가 0보다 작다는 것은 ( 으로 시작한 것이 아닌 ) 으로 괄호를 시작한 것으로 False를 리턴한다.


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
#include<string>
#include <iostream>
 
using namespace std;
 
bool solution(string s)
{
    bool answer = true;
 
    if(s.length()==1 || s[0]==')')
        return false;
        
    int count = 0;
    for(auto c: s){
        if(c=='(')
            count++;
        else
            count--;
        if(count<0)
            return false;
    }
 
    if(count!=0)
        return false;
    
    return answer;
}
cs


'Study > Algorithm' 카테고리의 다른 글

[Level 2] 6. 숫자의 표현  (0) 2018.07.23
[Level 2] 5. 땅따먹기  (0) 2018.07.20
[Level 2] 4. 다음 큰 숫자  (0) 2018.07.20
[Level 2] 2. 가장 큰 정사각형 찾기  (0) 2018.07.18
[Level 2] 1. 124 나라의 숫자  (0) 2018.07.16