균형잡힌 세상 (백준 4949번)

박영준·2023년 5월 24일
0

코딩테스트

목록 보기
147/300

메모


해결법

방법 1

import java.util.Scanner;
import java.util.Stack;
 
public class Main {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);

		String s;
		
		while (true) {		
			s = in.nextLine();
			
			if (s.equals(".")) {	// 종료 조건문 
				break;
			}
            
			System.out.println(solve(s));
		}
	
	}
	
	public static String solve(String s) {
		
		Stack<Character> stack = new Stack<>();
		
		for (int i = 0; i < s.length(); i++) {
			
			char c = s.charAt(i);	// i 번째 문자 
			
			
			if(c == '(' || c == '[') {		// '(' 또는 '[' 일 경우 : 스택에 push 
				stack.push(c);
			} else if (c == ')') {			// ')' 일 경우 
				if (stack.empty() || stack.peek() != '(') {		// 스택이 비어있거나 or pop할 원소가 '(' 과 매칭이 안되는 경우 
					return "no";
				} else {
					stack.pop();
				}
			} else if(c == ']') {		// ']' 일 경우
				if(stack.empty() || stack.peek() != '[') {		// 스택이 비어있거나 or pop할 원소가 '[' 와 매칭이 안되는 경우 
					return "no";
				} else {
					stack.pop();
				}
			}
		}
		
		if(stack.empty()) {
			return "yes";
		} else {
			return "no";
		}
	}
}
  • 괄호 (백준 9012번) 와 유사한 문제

  • 괄호(소괄호, 대괄호)가 아닌 문자의 경우, 그냥 넘어가면 된다.


참고: [백준] 4949번 : 균형잡힌 세상 - JAVA [자바]


참고: 균형잡힌 세상 (백준 4949번)

profile
개발자로 거듭나기!

0개의 댓글