[백준 4949번 / Java] 균형잡힌 세상코딩테스트/백준2023. 7. 1. 09:44
Table of Contents
728x90
728x90
문제 링크
https://www.acmicpc.net/problem/4949
풀이
단순 구현문제로 딱히 설명할 것은 스택을 사용했다 정도?
스택이 해당 문제를 풀기에 딱 적합했던 이유는 바로 이전에 등장했던 괄호를 꺼내보기 쉽다는 것(LIFO)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class BaekJoon4949 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuffer sb = new StringBuffer();
String line;
while ((line = br.readLine()) != null){
if(line.equals(".")) break;
Stack<Character> stack = new Stack<>();
boolean chk = false;
for(char c : line.toCharArray()){
if(c == '(' || c == '[') stack.add(c);
if((c == ')' || c == ']') && stack.isEmpty()) {
sb.append("no\n");
chk = true;
break;
}
if(c == ')' && stack.peek() != '(') {
sb.append("no\n");
chk = true;
break;
}
if(c == ']' && stack.peek() != '[') {
sb.append("no\n");
chk = true;
break;
}
if((c == ')' && stack.peek() == '(') || (c == ']' && stack.peek() == '[')){
stack.pop();
}
}
if(!chk){
if(stack.isEmpty()) sb.append("yes\n");
else sb.append("no\n");
}
}
System.out.println(sb);
}
}
728x90
300x250
@mag1c :: 꾸준히 재밌게
2023.04 ~ 백엔드 개발자의 기록
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!