Park DJ
dj0998
Park DJ
전체 방문자
오늘
어제
  • 분류 전체보기 (363)
    • 백준 (363)

공지사항

인기 글

태그

  • 백준 15961
  • 백준 2591
  • 백준 10709
  • 백준 2225
  • 백준 14582
  • 백준 2343
  • 백준 12605
  • 백준 24039
  • 백준 1747
  • 백준 1495
  • 백준
  • 백준 2467
  • 백준 15655
  • Java
  • 백준 1064
  • 백준 16194
  • 백준 8892
  • 자바
  • 백준 12871
  • 백준 1531
  • 백준 16926
  • 백준 3049
  • 백준 1914
  • 백준 3135
  • 백준 15312
  • 백준 1011
  • 백준 4659
  • 백준 6550
  • 백준 7662
  • 백준 7567
hELLO · Designed By 정상우.
Park DJ

dj0998

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

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

2023. 1. 25. 23:13

https://www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다

www.acmicpc.net


 

해석 및 팁

 


 

이 문제에서 균형 잡힌 문자열인지 아닌지를 판단하기 위해문장을 입력받을때 괄호를 구별하여  ']' 의 경우는 '['과 매칭되어야 하고, ')'의 경우는 '('과 매칭되어야 균형을 이루고 있으므로 여는 경우에는 Stack에 저장해 주고 닫는 경우에 Stack이 비어있지 않거나 매칭되는 경우에는 여는 괄호를 지워주고 아닌 경우에는 닫는 괄호를 Stack에 저장하면 됩니다. 최종적으로 Stack에 값이 남아있으면 균형을 이루지 못하는 경우입니다.


 

Java 코드

 


import java.util.Scanner;
import java.util.Stack;

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

    while(true) {
      String str = sc.nextLine();
      
      if(str.equals(".")) break;
      
      Stack<Character> stack = new Stack<>();
      
      for(int i = 0; i < str.length(); i++) {
        char a = str.charAt(i);
        
        if(a == '(' || a == '[') stack.push(a);
        
        else if(a == ')') {
          if(!stack.isEmpty() && stack.peek() == '(') stack.pop();
          else stack.push(a);
        }
        
        else if(a == ']') {
          if(!stack.isEmpty() && stack.peek() == '[') stack.pop();
          else stack.push(a);
        }

      }
      if(stack.isEmpty()) System.out.println("yes");
      else System.out.println("no");
  
    }
  }
}

'백준' 카테고리의 다른 글

백준 1620 나는야 포켓몬 마스터 이다솜(Java)  (1) 2023.01.26
백준 2217 로프(Java)  (0) 2023.01.26
백준 1764 듣보잡(Java)  (0) 2023.01.25
백준 10816 숫자 카드 2(Java)  (0) 2023.01.25
백준 1026 보물(Java)  (0) 2023.01.25
    '백준' 카테고리의 다른 글
    • 백준 1620 나는야 포켓몬 마스터 이다솜(Java)
    • 백준 2217 로프(Java)
    • 백준 1764 듣보잡(Java)
    • 백준 10816 숫자 카드 2(Java)
    Park DJ
    Park DJ

    티스토리툴바