https://school.programmers.co.kr/learn/courses/30/lessons/12909
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 |