[프로그래머스] Lv2.올바른 괄호 - Java

syeony·2025년 6월 28일
0

Java

목록 보기
19/19

문제 바로가기

접근방법

처음엔 boolean으로 )이 나타나면 true, (이 나타나면 false로 바꿔서 짝을 찾으려고 했다. 예시코드 4개는 맞았지만 히든케이스들에서 많이 틀렸다. 그래서 int형으로 )이 나타나면 +1, (이 나타나면 -1해주면서 짝을 찾았다.

정답코드

import java.io.*;
import java.util.*;

class Solution {
    boolean solution(String s) {
        boolean answer = true;

        Stack<Character> stack=new Stack<>();
        for(int i=0;i<s.length();i++){
            stack.push(s.charAt(i));
            // System.out.println(stack.pop());
        }
        
        int flag = 0;
        while(!stack.isEmpty()){
            if(flag<=0 && stack.peek()=='('){
                flag++;
                break;
            }
            
            if(stack.peek()=='('){
                stack.pop();
                flag--;
            }else if(stack.peek()==')'){
                stack.pop();
                flag++;
            }
        }
        
        if(flag>0) answer=false;

        return answer;
    }
}

후기

스택을 너무 오랜만에 쓰다보니 어케쓰더라?까먹었었다.
처음부터 다시 찾아보며 공부했다...
큐를 자주 쓰다보니 offer,poll밖에 모른...
스택은 push,pop이다.

profile
모바일 어플리케이션, cross platform과 iOS에 관심이 많은 개발자 오승연입니다

0개의 댓글