코린이의 소소한 공부노트

[LeetCode/Easy] 20. Valid Parentheses 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 20. Valid Parentheses

무지맘 2023. 1. 5. 00:05

1. Input

1) 문자열 s

 

2. Output

1) s가 올바른 괄호 사용을 한 문자열이면 true, 아니면 false를 반환

 

3. Constraint

1) 1 <= s.length <= 10^4

2) s'()[]{}'6개의 문자로만 이루어져 있다.

 

4. Example

Input: s = "()[]{}" -> Output: true

Input: s = "([)]{}" -> Output: false

 

5. Code

1) 첫 코드(2023/01/05)

import java.util.*;

boolean answer = true;
Stack<Integer> st = new Stack<Integer>();
try{
    for(int i=0 ; i<s.length() ; i++){
        switch(String.valueOf(s.charAt(i))){
            case "(": st.push(0); break;
            case "{": st.push(1); break;
            case "[": st.push(2); break;
            case ")":
                if(st.peek()==0) { st.pop(); break; }
                else { answer = false; break;}
            case "}":
                if(st.peek()==1) { st.pop(); break; }
                else { answer = false; break;}
            default: // "]"
                if(st.peek()==2) { st.pop(); break; }
                else { answer = false; break;}
        } // switch
    } // for
}catch(Exception e){ answer=false; }
return answer && st.empty();