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 |