ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 자알인 - 스택 & 큐
    자료구조와 알고리즘/알고리즘 2024. 1. 30. 12:08

     

    1. 유효한 괄호 

     

    - 내 풀이(1ms)

     public boolean isValid(String s) {
            //먼저들어간 괄호는 무조건 이전 괄호와 짝이어야함
            //사실상 거의 뭐 팰린드롬 검사지 
            char[] chararr = s.toCharArray();
            Deque<Character> deq = new ArrayDeque<>();
    
            for(char p : chararr){
                if(p == '(' || p == '[' || p == '{'){
                    deq.push(p);
                }else{
                    if(deq.isEmpty()){
                        return false;
                    }
    
                    if(p == ')' && deq.peek() == '('){
                       deq.pop();
                    }else if(p == ']' && deq.peek() == '['){
                       deq.pop();
                    }else if(p == '}' && deq.peek() =='{'){
                       deq.pop();
                    }else{
                        return false;
                    }
                }
            }
    
            if(!deq.isEmpty()){
                return false;
            }
    
            return true;
        }

     

    - 스택과 Map을 이용한 풀이(2ms)

     public boolean isValid(String s) {
            Deque<Character> stack = new ArrayDeque<>();
    
            Map<Character,Character> table = new HashMap<>();
            table.put(')','(');
            table.put('}','{');
            table.put(']','[');
            //(){}
            for(int i=0; i<s.length(); i++){
                // 닫힘 괄호가 아닌 경우 스택에 푸시 스택에 (이 푸쉬됨
                if(!table.containsKey(s.charAt(i))){
                    stack.push(s.charAt(i));
                //닫힘괄호인 경우 ) 비교함 맵에 (와 charAt 
                }else if(stack.isEmpty() || table.get(s.charAt(i)) != stack.pop()){
                    return false;
                }
            }
    
            return stack.size() == 0;
        }

     

     

    2. 중복 문자 제거

     

    '자료구조와 알고리즘 > 알고리즘' 카테고리의 다른 글

    완탐  (0) 2024.04.12
    자알인 (1) 코딩테스트 팁  (0) 2024.01.03
    다이나믹 프로그래밍  (0) 2023.04.13
    여러가지 수학  (0) 2023.04.11
    스택과 문제들 풀면서 얻은..  (0) 2023.04.05
Designed by Tistory.