SWEA 5432번 - 쇠막대기 자르기

SWEA 5432번 - 쇠막대기 자르기

import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Solution_쇠막대기자르기 { static int T; // 테케 static char[] crr; public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); Stack stack = new Stack<>(); T = Integer.parseInt(in.readLine()); for (int tc = 1; tc <= T; tc++) { String str = in.readLine(); crr = new char[str.length()]; for (int i = 0; i < str.length(); i++) { crr[i] = str.charAt(i); } int cnt = 0;// 막대기의 개수 for (int i = 0; i < crr.length; i++) { // ( 기호가 있을 때 if (crr[i] == '(') { stack.push(crr[i]); } else if (crr[i] == ')' && crr[i - 1] == '(') { // i 값이 ) 닫는 괄호인데 전의 값이 ( 연다면 레이저 겠지. stack.pop(); // 레이저 에 해당하는 ( 열린괄호 하나를 꺼내기. cnt += stack.size(); // stack 에 있는 만큼 막대기 개수 } else if (crr[i] == ')' && crr[i - 1] == ')') { // 막대기의 길이가 끝이 났다 stack.pop(); // ( 를 하나 꺼내 이건 레이저가 될 것이다. cnt += 1; // 막대기의 개수가 한개 더해짐. 레이저로 짤리면 한개가 늘어남. } } System.out.println("#"+tc+" "+ cnt); } } }

공유하기 글 요소 저작자표시

from http://hmhmchm.tistory.com/17 by ccl(A) rewrite - 2021-10-01 02:01:08