TIL (Today I Learned)

99클럽 코테 스터디 28일차 TIL + 오늘의 학습 키워드

남 희 2024. 8. 19. 00:40

☑️ 문제: 괄호 회전하기

https://school.programmers.co.kr/learn/courses/30/lessons/76502

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

☑️ Code

오늘의 키워드: Stack 활용
import java.util.*;

class Solution {
    public int solution(String s) {
        int answer = 0;
        for (int start = 0; start < s.length(); start++) {
            Stack<Character> stack = new Stack<>();
            
            for (int i = start; i < start + s.length(); i++) {
                char ch = s.charAt(i % s.length());
                
                if (stack.isEmpty() || ch == '(' || ch == '[' || ch == '{') {
                    stack.push(ch);
                } else {                    
                    if ((stack.peek() == '(' && ch == ')') ||
                        (stack.peek() == '[' && ch == ']') ||
                        (stack.peek() == '{' && ch == '}')) {
                        stack.pop();
                    }
                }
            }
            if (stack.isEmpty()) {
                answer++;
            }
        }
        
        return answer;
    }
}

 

☑️ Memo

<T>에는 객체가 들어가야 한다.

다른 풀이를 참고해보니 괄호를 switch문으로 구분하는 코드가 있었는데 가독성이 좋았다.