문제
https://www.acmicpc.net/problem/10799
1 번째 시도
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
int answer = 0;
Stack<Integer> st = new Stack<Integer>();
for(int i=0; i<s.length(); i++) {
char temp = s.charAt(i);
//스택에 '(' 일때 추가하고, ')'일때 pop
if(temp=='(') {
st.add(i);
}else {
st.pop();
if(s.charAt(i-1)=='(') { //만약 레이저라면
answer += st.size(); //남은 스택사이즈(잘릴 쇠막대기 갯수) 더함.
} else { //레이저가 아닐땐 잘린 쇠막대기 끝에 남은거 하나를 더함.
answer++;
}
}
}
System.out.println(answer);
}
}
'알고리즘 > 스택' 카테고리의 다른 글
[백준 6549] 히스토그램에서 가장 큰 직사각형 / 자바 / 스택 (0) | 2024.08.10 |
---|---|
[백준 17928] 오큰수 / 자바 / 스택 (0) | 2024.06.21 |
스택 문제 판별능력 키우기(with 백준 7문제) (1) | 2024.04.28 |
항해99 29일차 TIL( 에디터 / 백준) (1) | 2024.04.27 |
항해99 27일차 TIL( 괄호 / 백준) (0) | 2024.04.25 |