반응형
스택사용하여 쇠막대 레이저로 절단하기
스택에 쇠막대 시작기호를 쌓는다.
레이저가 나오거나, 쇠막대가 끝나면 조각 갯수를 늘린다.
레이저가 나오면, 조각 갯수에 스택에 쌓인 시작갯수를 추가한다.
쇠막대가 끝나면, 조각 갯수에 +1하고 스택에서 하나 꺼낸다.
package com.company;
import java.io.*;
import java.util.*;
public class BOJ10799 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Character> st=new Stack<>();
int cnt=0;
String input=br.readLine();
for(int i=0;i<input.length();i++){
if(input.charAt(i)=='(' && input.charAt(i+1)==')'){
cnt+=st.size();
i++;
}
else if(input.charAt(i)=='('){
st.push('(');
}
else if(input.charAt(i)==')'){
cnt+=1;
st.pop();
}
}
System.out.print(cnt);
}
}
반응형
'Coding Test(Algorithms)' 카테고리의 다른 글
[JAVA] 자료구조 연습문제 - 백준 10845 (0) | 2021.06.30 |
---|---|
[JAVA] 자료구조 연습문제 - 백준 10828 (0) | 2021.06.29 |
[JAVA] 자료구조 연습문제 - 백준 9093 (0) | 2021.06.27 |
[JAVA] 자료구조 연습문제 - 백준 9012 (0) | 2021.06.26 |
[JAVA] 자료구조 연습문제-백준 1874 (0) | 2021.06.25 |