코린이의 소소한 공부노트

[프로그래머스/Lv.2] 올바른 괄호 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.2] 올바른 괄호

무지맘 2022. 11. 25. 10:57

1. Input

1) '(' 또는 ')' 로만 이루어진 문자열 s

 

2. Output

1) 문자열 s가 올바른 괄호이면 true를 반환하고, 올바르지 않은 괄호이면 false를 반환

2) 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻

 

3. Constraint

1) 문자열 s의 길이 : 100,000 이하의 자연수

2) 문자열 s'(' 또는 ')' 로만 이루어져 있다.

 

4. Example

Input: s=“()()” -> Output: true

Input: s=“(()()” -> Output: false

Input: s=“)()(” -> Output: false

설명:

- 여는 괄호 ‘(’2, 닫는 괄호 ‘)’2개이므로 true

- 여는 괄호는 3개인데 닫는 괄호가 2개이므로 false

- 여는 괄호와 닫는 괄호가 똑같이 2개가 있지만, 닫는 괄호부터 올 수 없으니 false

 

5. Code

1) 첫 코드(2022/11/25)

import java.util.*;
 
boolean wrong = false;
Stack st = new Stack();
for(int i=0 ; i<s.length() ; i++){
    if(s.charAt(i)=='(') st.push(0);
    else if(s.charAt(i)==')'){
        if(st.empty()){ wrong = true; break; }
        else st.pop();
    }
} // for i
return st.empty() && !wrong;