CS/Algorithm

[ 백준 10799 ] : 쇠막대기 - JAVA

yujindonut 2021. 4. 4. 19:44
728x90

 

import java.util.Scanner;
import java.util.Stack;
public class Main {

	public static void main(String[] args) {
		
		Scanner scan = new Scanner(System.in);
		String sen = scan.nextLine();
		Stack<String> stack = new Stack<>();
		int sum = 0;
		
		for(int i = 0; i < sen.length(); i++) {
			
			if(sen.charAt(i) == '(')
				stack.push("(");
			else {
				
				if(sen.charAt(i - 1) == '(') {
					stack.pop(); //레이저였던 ( 를 빼주기
					sum += stack.size(); //레이저니까 앞에 남아준 것 다 빼기
				}
				else {
					stack.pop(); //막대기의 시작을 빼주는 것
					sum += 1; //막대기의 끝이니까 마지막 조각임
				}
			}
		}
		System.out.println(sum);
		scan.close();
	}

}

답지를 참고했음 ㅜㅜ

 

스택은 세로의 막대기를생각했어야했는데!!!!!!!!!

레이저인 마지막 ")"와 남은 막대기의 시작인 부분을 어떻게 해줘야하나 몰랐다..

728x90