코딩테스트

BOJ : 11899

joonwoong 2024. 4. 5. 17:17

1. 문제

 

2. 풀이

여는 괄호를 스택에 넣고 닫는 괄호가 들어오면 pop해주는 식으로 한뒤에 팝한 숫자와 스택에 남은 숫자를 더하면 정답이 된다.

 

3. 코드

import java.util.Scanner;
import java.util.Stack;

public class Q11899 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        Stack<Character> st = new Stack<>();

        String str = sc.nextLine();
        int cnt = 0;

        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == '(') {
                st.push('(');
            } else if (str.charAt(i) == ')') {
                if (st.isEmpty()) cnt++;
                else st.pop();
            }
        }

        System.out.println(cnt+st.size());
    }
}

 

4. 결과

 

5. 소감

문제에 대해 이해가 빠르게 되어서 금방 풀 수 있었다.

'코딩테스트' 카테고리의 다른 글

BOJ : 2217  (0) 2024.05.22
BOJ : 4796  (0) 2024.05.22
BOJ : 10799  (0) 2024.04.05
BOJ : 28278  (0) 2024.04.05
BOJ : 5397  (0) 2024.04.04