Baekjoon Online Judge - 10799
Review
- 저번에 풀었던 괄호 9012 문제를 응용해서 풀면 쉽게 풀린다.
- 포인트는 라인 23~27이다. ‘))’ 이렇게 중첩이 된 경우, 쇠파이프가 끊긴 거니 1을 더해주면 된다.
Code (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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
| import java.util.*;
public class Main { public static void main(String args[]){ Scanner sc = new Scanner(System.in); String s; s = sc.next();
Stack stack = new Stack();
int cnt = 0; int res = 0;
for(int j = 0; j < s.length(); j++) { if(s.charAt(j)=='(') { stack.push(1); cnt++; } else if(s.charAt(j)==')') { if(stack.size != 0) { stack.pop(); cnt--; if(s.charAt(j-1)=='(') { res += cnt; } else { res++; } } } } System.out.println(res); sc.close(); }
static class Stack { private int size = 0; private SNode top = null;
private class SNode { int data; private SNode next; }
public void push(int x) { SNode node = new SNode(); node.data = x; node.next = top; top = node; size++; }
public void pop() { top = top.next; size--; } } }
|