[코테5_5]쇠막대기

byeol·2022년 12월 14일
0

코딩테스트

목록 보기
33/42

✔ 내 답-> 정답
(은 stack에 쌓는다
)이 나오면 stack에 있는 ( 하나를 꺼낸다.
단, ( 가장 최근에 넣은 즉 )직전에 넣은 것이라면
stack에 남아있는 사이즈만큼 더하기

아니라면 +1만 하기 남은 막대기 더하는 것이다.

import java.util.*;

public class Main{
 public static int solution(String input){
   int answer=0;
   int r=0;
   Stack<Character> st = new Stack<>(); 
   char[] arr = input.toCharArray();
   for(int i=0;i<arr.length;i++){
           if(arr[i]=='(') {
              st.push('(');
           }
         else{
              st.pop();
              if(i>=1&&arr[i-1]=='(') answer+=st.size();
              else answer+=1;
           }   
   }  
   return answer;
 }
 public static void main(String[] args){
   Scanner kb = new Scanner(System.in);
   String input = kb.next();
   System.out.println(solution(input));
 }
}

profile
꾸준하게 Ready, Set, Go!

0개의 댓글