백준 11899번 괄호 끼워넣기-JAVA

sujin·2025년 2월 1일

코딩테스트-백준

목록 보기
3/18

📝문제

📝알고리즘

//괄호열 S를 입력받고
//괄호들을 분리해서 각각 배열에 저장
//괄호 배열을 순회하면서
//스택이 비어있을 때
//')'이면 필요한 괄호 개수 추가
//'('이면 스택에 넣음
//스택이 안 비어있을 때 ')'이고
//스택 최상단이 '('이면 짝을 이뤄 pop하고
//스택 최상단이 '('이 아니면 필요한 괄호 개수 추가
//스택이 안 비어있을 때 '('이면 스택에 넣음
//모든 괄호 배열을 순회한 후 스택에 남은 개수를 num에 더함
//num 출력

📝구현

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner=new Scanner(System.in);
        Stack<Character> stack=new Stack<>();
        String input=scanner.nextLine();
        char[] brackets=input.toCharArray();
        int num=0;
        for(char c:brackets){
            if(stack.isEmpty()){
                if(c==')'){
                    num++;
                }
                else{
                    stack.push(c);
                }
            }
            else{
                if(c==')'){
                    if(stack.peek()=='('){
                        stack.pop();
                    }
                    else{
                        num++;
                    }
                }
                else{
                    stack.push(c);
                }
            }
        }
        num+=stack.size();
        System.out.print(num);
    }
}

📌기록하고 싶은 내용

문자열을 문자 배열로 전환하고 싶을 때➡️toCharArray()사용

profile
열공!

0개의 댓글