반응형
처음 입력에서 안정적인 괄호 쌍들은 모두 제거 합니다.
ex) 입력 : {{{}{}{{ -> {{{{
그 다음 남은 괄호들이 문제인데 머릿속에 떠오른 규칙성있게 짝맞추는 방법이 두가지가 있었습니다.
1. 큰 괄호에서 작은 괄호로 묶는 식으로 바꾸자 ex) {{{{}}}}
2. 두 개씩 맞추자 ex) {}{}{}{}
근데 스택구조상 2번째 방법이 처리 과정이 단순하다고 생각해서 두 번째 방법으로 했습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int index = 1;
while(true){
Stack<String> stack = new Stack<>();
String[] input = br.readLine().split("");
if (input[0].equals("-")) break;
for (String str : input){
if (stack.isEmpty()) stack.push(str);
else if (stack.peek().equals("{") && str.equals("}")) stack.pop();
else stack.push(str);
}
int sum = 0;
while (!stack.isEmpty()){
if (stack.pop().equals("{")) sum++;
if (stack.pop().equals("}")) sum++;
}
System.out.println(index+++". "+ sum);
}
}
}
반응형
'Algorithm' 카테고리의 다른 글
백준 16673번 고려대학교에는 공식 와인이 있다 [ Java ] (0) | 2020.12.28 |
---|---|
백준 10799번 쇠막대기 [ Java ] (0) | 2020.12.28 |
백준 5430번 AC [ Java ] (0) | 2020.12.27 |
백준 6198번 옥상 정원 꾸미기 [ Java ] (0) | 2020.12.27 |
백준 2493번 탑 [ Java ] (0) | 2020.12.26 |