본문 바로가기
algorithm/Programmers

[JAVA] 올바른 괄호

by 이쟝 2023. 3. 31.

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

 

프로그래머스

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

programmers.co.kr

 

 

1. Queue를 이용한 풀이

class Solution {
    boolean solution(String s) {
        Queue<Integer> queue = new LinkedList<>();
        for(int i=0; i<s.length(); i++) {
            if(s.charAt(i) == '(' || s.charAt(0) == ')') queue.offer(i);
            else queue.poll();
        }
        
        return (queue.size() == 0) ? true : false;
    }
}

 

  • '(' 일 때, queue에 추가, 그 외에는 다 queue에서 삭제 
  • 단, 값을 삭제할 때 poll( ) 이 아닌 remove( )로 하면 테스트케이스에서 오류를 발생하면서 런타임 실패가 된다! poll은 큐가 비어있으면 null값을 반환하기 때문에 괜찮음...! 

 

  • 생각보다 빠른 시간에 풀어서 당황했다. 항상 오래 걸렸는데.. queue를 사용할 때는 add보단 offer를, remove보단 poll을!

 

 

'algorithm > Programmers' 카테고리의 다른 글

[JAVA] 추억점수  (0) 2023.04.04
[JAVA] K번째 수  (0) 2023.03.31
[JAVA] 기능 개발  (0) 2023.03.30
[JAVA] 같은 숫자는 싫어  (0) 2023.03.29
[JAVA] 전화번호 목록  (0) 2023.03.29