Blue___
코딩배우는 학생🌎
Blue___
전체 방문자
오늘
어제
  • 코딩배우는 학생🧀 (242)
    • Algorithms (145)
      • BOJ[Java] (107)
      • Programmers[Java] (32)
      • Coding_Contest (3)
    • Web (22)
      • .NET Core C# (2)
      • Java (1)
      • Oracle SQL (7)
      • Web-ProJect (3)
      • Error처리 (1)
      • Web지식 (4)
      • Javascript (1)
      • Vue (3)
    • Git (4)
    • Java_beginner(Repl.it) (55)
      • Auto-Graded-Course(AP CS A) (54)
    • 프로젝트 직딩일기 (3)
    • Hanyang_Assignment (0)
    • 이모저모 (4)
      • 잡담 (1)
      • 2021 오픈소스 컨트리뷰터 아카데미 (1)
      • DDD - 6기! (1)
    • 북리뷰 (1)
      • 리팩토링 2판 (1)
      • 클린코드 (0)

블로그 메뉴

  • 🐰GITHUB
  • ☘️포트폴리오
  • 🌸MBC개발_투표 2022
  • 🍭MBC_APP

공지사항

인기 글

태그

  • algorithm
  • REPL
  • 코딩배우는 학생
  • 프로그래머스
  • Java
  • Java tutorial
  • AP CS A
  • coding
  • 자바
  • auto-graded course
  • 코딩배우는학생
  • 알고리즘
  • repl.it
  • java basic
  • 코딩
  • programmers
  • 레플릿
  • Bakjoon
  • 프로그래밍
  • 백준

최근 댓글

최근 글

티스토리

hELLO
Blue___

코딩배우는 학생🌎

Algorithms/BOJ[Java]

[백준/9012번] 괄호(Daejeon Nationalwide Internet Competition 2012)[Java]

2020. 2. 17. 21:18

문제

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 

여러분은 입력으로 주어진 괄호 문자열이 VPS 인지 아닌지를 판단해서 그 결과를 YES 와 NO 로 나타내어야 한다.

입력

입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 주어진다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 괄호 문자열이 한 줄에 주어진다. 하나의 괄호 문자열의 길이는 2 이상 50 이하이다. 

출력

출력은 표준 출력을 사용한다. 만일 입력 괄호 문자열이 올바른 괄호 문자열(VPS)이면 “YES”, 아니면 “NO”를 한 줄에 하나씩 차례대로 출력해야 한다. 

 


풀이

 

알고리즘 분류가 스택이길래 스택을 사용해서 풀어주었다.

처음에 ( 가 확정적으로 들어오는게 아니므로 분류해주고 스위치(sw)를 통해서 완벽한 vps일때만 yes를 출력하도록 해주었다. ㅇㅅㅇ

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import java.util.*;
import java.io.*;
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()); //input testcase
       
       while(n-->0) { //n에서 0까지
           Stack<Character> stack =new Stack<>(); //스택 선언
           String ps = br.readLine(); //괄호문자열받기
           int sw=0;
           char temp;
           // 괄호 하나씩 vps판단하기
           for(int j=0;j<ps.length();j++) 
           {
               temp=ps.charAt(j);
               if(temp=='(') {
                    stack.push(temp);                       
               }
               else { //')'일때
                   if(!stack.isEmpty()) {
                       stack.pop();
                   }
                   else {
                       sw=1;
                       break;
                   }                
               }
           }
           if(!stack.isEmpty()) {sw=1;}
           if(sw==0) {
               System.out.println("YES");                               
           }
           else {
               System.out.println("NO");             
           }
           stack.clear();    
         }
   }//method end
}//class end
 
 
 

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

 

9012번: 괄호

문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc

www.acmicpc.net

 

반응형
저작자표시 (새창열림)

'Algorithms > BOJ[Java]' 카테고리의 다른 글

[백준/2309번] 일곱난쟁이[Java]  (0) 2020.02.19
[백준/10845번] 큐 [Java]  (0) 2020.02.18
[백준/10799번] 쇠막대기(Stack)[Java]  (0) 2020.02.17
[백준/15820번] 맞았는데 왜 틀리죠?(2018 Ajou Porgramming Contest)[Java]  (0) 2020.02.12
[백준/2108번] 통계학 [Java]  (0) 2020.02.10
    'Algorithms/BOJ[Java]' 카테고리의 다른 글
    • [백준/2309번] 일곱난쟁이[Java]
    • [백준/10845번] 큐 [Java]
    • [백준/10799번] 쇠막대기(Stack)[Java]
    • [백준/15820번] 맞았는데 왜 틀리죠?(2018 Ajou Porgramming Contest)[Java]
    Blue___
    Blue___
    완전 연소한 불은 재를 남기지않는다 : 코딩배우는학생 🌎

    티스토리툴바