happy coding

[java] 4949. 균형잡힌 세상 본문

coding study/baekjoon

[java] 4949. 균형잡힌 세상

yeoonii 2023. 8. 15. 18:18

이전 괄호 문제에서 업글업글 버전이다. 타인의 코드를 참고해서 해결했다.

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

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        String input;

        while(true) {

            input = br.readLine();

            if(input.equals(".")) {	// 종료 조건문
                break;
            }

            sb.append(testCase(input)).append('\n');
        }

        System.out.println(sb);


    }

    public static String testCase(String s) {

        Stack<Character> stack = new Stack<>();

        for(int i = 0; i < s.length(); i++) {

            char c = s.charAt(i);	// i 번째 문자

            // 여는 괄호일 경우 스택에 push
            if(c == '(' || c == '[') {
                stack.push(c);
            }

            // 닫는 소괄호 일 경우
            else if(c == ')') {

                // 스택이 비어있거나 pop할 원소가 소괄호랑 매칭이 안되는 경우
                if(stack.empty() || stack.peek() != '(') {
                    return "no";
                }
                else {
                    stack.pop();
                }
            }

            else if(c == ']') {

                // 스택이 비어있거나 pop할 원소가 대괄호랑 매칭이 안되는 경우
                if(stack.empty() || stack.peek() != '[') {
                    return "no";
                }
                else {
                    stack.pop();
                }
            }

            // 불필요한건 무시
        }

        if(stack.empty()) {
            return "yes";
        }
        else {
            return "no";
        }
    }
}

그리고 매번 느끼는 건데 가변적인 문자열로 계속 받을까보다..그냥.. 테케 수가 주어지지 않은 경우 StringBuilder로 넘어가는데 좀 매번 돌아가는 느낌이 들기도 하고 sb쓰는 것도 익숙하지도 않은 것 같아서 찾아보게 된다.

'coding study > baekjoon' 카테고리의 다른 글

[java] 25206. 너의 평점은  (0) 2023.08.18
[java] 1874. 스택 수열  (0) 2023.08.16
[java] 9012. 괄호  (0) 2023.08.15
[java] 10828. 스택  (0) 2023.08.15
[java] 10773. 제로  (0) 2023.08.15
Comments