티스토리 뷰
괄호
문제
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(concatenation)시킨 새로운 문자열 xy도 VPS 가 된다. 예를 들어 “(())()”와 “((()))” 는 VPS 이지만 “(()(”, “(())()))” , 그리고 “(()” 는 모두 VPS 가 아닌 문자열이다. 여러분은 입력으로 주어진 괄호 문자열이 VPS 인지 아닌지를 판단해서 그 결과를 YES 와 NO 로 나태내야 한다.
입력
첫째 줄에 괄호 문자열이 한 줄에 주어진다. 하나의 괄호 문자열의 길이는 2 이상 50 이하이다.
출력
만일 입력 괄호 문자열이 올바른 괄호 문자열(VPS)이면 “YES”, 아니면 “NO”를 한 줄에 하나씩 차례대로 출력해야 한다.
예제 입력
(())())
예제 출력
NO
출처
2012 ACM ICPC Asia Daejeon Regional 인터넷 예선 G
코드
//괄호 스택
import java.util.*;
public class Main {
public static ArrayList<Integer> box = new ArrayList<>();
//첫째 줄에 괄호 문자열이 한 줄에 주어진다. 하나의 괄호 문자열의 길이는 2 이상 50 이하이다.
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//총 몇개의 숫자를 입력 받을 것인지
String a;
int b;
int c;
int d = 0;
Stack<String> stack = new Stack<>();
a = sc.nextLine();
sc.close();
String[] charBox = a.split("");
boolean isGood = true;
for (int i = 0; i < charBox.length; i++) {
if (charBox[i].equals("(")) stack.push(charBox[i]);
else if (charBox[i].equals(")")) {
if (stack.isEmpty()) {
isGood = false;
break;
} else stack.pop();
}
}
if (isGood && stack.isEmpty()) System.out.println("YES");
else System.out.println("NO");
}
}
'알고리즘 문제 풀이 ' 카테고리의 다른 글
달팽이는 올라가고 싶다 (0) | 2018.10.01 |
---|---|
탑 (0) | 2018.10.01 |
괄호의값 (0) | 2018.10.01 |
Merge sort (0) | 2018.10.01 |
원형큐 구현하기 (0) | 2018.10.01 |
선형큐 구현하기 (0) | 2018.10.01 |
스택구현하기 (0) | 2018.10.01 |
숫자박스 - 90점 (0) | 2018.10.01 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 1992번
- 한글 자동 완성
- webspider
- Terminal
- java #오르막수 #백준 #알고리즘
- 백준
- javascript #백준 #알고리즘 #LCS
- Javascript
- 색종이자르기
- java #알고리즘 #백준 #N과M #백트래킹
- java #퀵소트 #quicksort #알고리즘 #백준
- 쿼드트리
- TypeScript
- java #백준 #알고리즘 #2805 #나무자르기
- javascript #연속합 #알고리즘 #백준
- Game
- npm
- 백준 #알고리즘 #전깃줄 #NodeJs #javascript
- java #알고리즘 #백준 #패션왕신해빈
- java #백준 #알고리즘 #로또 #6603
- 중간거리 #야만나 #약속장소추천 #중간위치 #웹 #리액트 #React #reactjs #kakao지도 #kakaoapi
- webpack
- 2630번
- 알고리즘
- react
- javascript #백준 #회의실배정 #알고리즘
- java #알고리즘 #백준
- java #하노이 #알고리즘 #백준
- 백준 #java #알고리즘
- java #알고리즘 #백준 #퇴사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함