99클럽 코테 스터디 4일자 TIL + 스택/큐

이월(0216tw)·2024년 5월 23일
0

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/12909/ (프로그래머스)

학습 키워드

스택(STACK) , 큐(QUEUE)

시도 방법

스택/큐를 활용해 문제 풀이 (성공)

내가 작성한 코드

import java.util.Stack; 

class Solution {
    boolean solution(String s) {
        
        //사전에 불가능한 케이스 처리 
        if(s.charAt(0) == ')' || s.charAt(s.length()-1) == '(') 
            return false;  
        
        Stack<Character> stack = new Stack<>(); 
        
        for(char chr : s.toCharArray()) {
            
            if(stack.isEmpty()) {
                if(chr == ')') return false; 
                stack.push(chr);
            } else {
                if(stack.peek() == '(' && chr == ')') {
                    stack.pop();
                } else {
                    stack.push(chr); 
                }                
                
            }            
        }
        return stack.isEmpty();  
    }
}

코드설명

시작이 ) 이거나 마지막이 ( 이면 잘못된 괄호이므로 false 처리한다.

만약 stack이 비어있고 ) 을 넣으려고 하면 false를 리턴한다.
그렇지 않으면 비어있는 상태에서 ( 을 입력하는 것이므로 스택에 push한다.

stack이 비어있지 않고, 마지막으로 들어있는 값이 ( 이면서[peek] , 현재 값이 ) 이라면 stack에서 pop을 통해 마지막의 데이터를 빼낸다.

처리결과

새롭게 알게된 점

문제를 풀때 적합한 자료구조를 사용하면 편리하게 문제를 해결할 수 있었다.

다음에 풀어볼 문제 - 더맵게




#99클럽 #코딩테스트 준비 #개발자 취업 #항해99 #TIL

profile
Backend Developer (Financial)

0개의 댓글