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