개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (286) N
    • Web Front End (75) N
      • Javascript & Typescript (26)
      • React (12) N
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (7)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 릿코드
  • JavaScript
  • 프론트엔드
  • 회고
  • 자바스크립트
  • 개발자
  • 노개북
  • 오늘의회고
  • TypeScript
  • 노마드북클럽

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Problem Solved/BOJ

[BOJ][Java] 9012번 - 괄호

2020. 2. 21. 11:54
반응형

문제

백준 9012번 문제: 괄호

문제 설명

주어진 문자열이 올바른 괄호열인지 판단하는 문제

문제 풀이

  1. 입력 데이터의 수(n)만큼 반복문을 돈다.
  2. 빈 스택과 vps 판별 boolean 값을 초기값으로 둔다.
  3. 문자열 하나씩 비교하기 위해 문자열 길이만큼 반복문을 돈다.
  4. (이면 스택에 넣는다.
  5. )이면서 스택이 비어있지 않으면 스택에 있는 마지막 요소를 pop하여 제거한다.
  • 여기서 스택에서 제거하는 이유는, vps라면 짝이 맞기 때문에 마지막에는 스택이 비워져야 맞는 것이기 때문이다.
  1. )이면서 스택이 비어 있으면 (가 스택에 없다는 뜻이므로 vps를 false로 바꾸고 for문을 멈춘다.
  2. 만약 반복문을 다 돌았는데 스택이 비어있지 않다면 vps를 false로 변경해 예외 처리를 해 준다.
  3. vps가 true이면 YES, false이면 NO를 출력한다.

성공 코드

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

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

        for (int i = 0; i < n; i++){
            Stack<String> stack = new Stack<String>();
            String k = s.next();
            boolean vps = true;

            for (int j = 0; j < k.length(); j++){
                if ( '(' == k.charAt(j) ) {stack.push("(");}
                else if ( ')' == k.charAt(j) ) {
                    if (!stack.isEmpty()) {stack.pop();}
                    else {
                        vps = false;
                        break;
                    }
                }
            }
            if (!stack.isEmpty()) vps = false;
            System.out.println(vps? "YES" : "NO");
        }
    }
}
반응형
저작자표시 (새창열림)
    'Problem Solved/BOJ' 카테고리의 다른 글
    • [BOJ][Java] 4949번 - 균형잡힌 세상
    • [BOJ][Nodejs] 1676번 - 팩토리얼 0의 개수
    • [BOJ][Java] 10773번 - 제로
    • [BOJ][Java] 10828번 - 스택
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바