728x90
반응형
문제
정답
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
for(int i = 0 ; i < N; i++) {
System.out.println(checkBracket(br.readLine()));
}
}
static String checkBracket(String testBracket){
Queue<Character> resultQueue = new LinkedList<>();
for(int i = 0 ; i < testBracket.length(); i++) {
char c = testBracket.charAt(i);
if(c == '(') {
resultQueue.offer(c);
} else if(resultQueue.isEmpty()) { // ')'인데 비어있을 경우
return "NO";
} else { // ')'일 경우 짝이 맞으니 queue 하나 삭제
resultQueue.poll();
}
}
if(resultQueue.isEmpty()) {
return "YES";
} else {
return "NO";
}
}
}
input값을 어디에 쌓아두었다가 닫는 괄호가 들어오면 어떻게 표시를 해주어야 겠다는 생각이 들었어요
Queue나 Stack 둘 중 하나를 써야겠다는 생각이 들었는데
FIFO든 LIFO든 해당 문제에서는 상관없다고 판단해서
최근에 사용했던 Queue를 사용해주었습니다.
728x90
반응형
'Computer Science (CS) > 알고리즘' 카테고리의 다른 글
[백준/Java] 10828번 스택 (0) | 2024.11.18 |
---|---|
[백준/Java] 10845번 큐 (0) | 2024.11.18 |
[백준/Java] 2164번 카드2 (0) | 2024.11.03 |
[백준/Java] 11650번 좌표 정렬하기 (3) | 2024.10.27 |
[백준/Java] 10814번 나이순 정렬 (0) | 2024.10.27 |