[Programmers School] 올바른 괄호

Lucy_1215·2022년 11월 10일
0

프로그래머스

목록 보기
7/10

📆11/9
올바른 괄호

<문제 설명>

<입출력 값>

<문제 해석>
-괄호가 알맞게 짝 지어졌는지 유무를 리턴한다.

<문제 해결>
1. Stack을 이용하여 문제를 해결하려고 하였다.
2. for문을 이용하여 만약 ")" 일 때, 스택의 맨 위의 값이 ")"이고 스택이 비어있지 않는다면 스택의 맨 위의 값을 pop 시킨다.
3. 만약 ")" 이라면, 스택에 push 한다.
까지만 하고 코드를 돌렸을 때, 에러가 났다.
그 이유는
1. s의 첫번째 괄호가 ")" 인 경우
2. for문이 끝났을 때 stack이 비어있지 않는다는 경우
였다.

if 문을 이용해 위의 2가지의 경우를 구현해주었다.
다행히 잘 실행되었고 통과하였다.

<내 코드>

import java.util.*;
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        Stack<Character> stack = new Stack<>();
        if(s.charAt(0) ==')'){
                return false;
            }
        for(int i=0;i<s.length();i++){
            if(s.charAt(i) == ')'){
                if(!stack.isEmpty() && stack.peek() == '('){
                    stack.pop();
                }else{
                    return false;
                }
            }else{
                stack.push(s.charAt(i));
            }
        }
        if(!stack.empty()){
            return false;
        }
        return answer;
    }
}

코드를 짤 때 예외인 경우를 잘 파악하고 해결해야겠다!

profile
성실한 개발자를 꿈꾸는 개발 일지

0개의 댓글