봄봄.devlog
백준 | 10799번 :: 쇠막대기 본문
https://www.acmicpc.net/problem/10799
10799번: 쇠막대기
여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저�
www.acmicpc.net
🎈 문제 풀이
- 레이저 나오면 pop하고 스택 사이즈 더하기
- 막대기의 끝이 나오면 스택 하나 제거하고 +1
🎈 소스 코드
public class Q10799_1 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Stack<Character> stack = new Stack<>();
String str = br.readLine();
char pre = ' ';
int answer = 0;
for(int i=0; i<str.length(); i++) {
char c = str.charAt(i);
switch(c) {
case '(' :
stack.push(c);
break;
case ')' :
if(!stack.isEmpty()) {
stack.pop();
if(pre == '(') { //레이저
answer += stack.size();
} else answer += 1;
}
break;
}
pre = c;
}
System.out.println(answer);
}
}
'Algorithm > 백준' 카테고리의 다른 글
백준 7576번 :: 토마토 (BFS) (0) | 2020.08.23 |
---|---|
백준 11047번 :: 동전 0번 (그리디 알고리즘) (0) | 2020.08.16 |
백준 | 1966번 :: 프린터 큐 (0) | 2020.08.10 |
백준 | 10845번 :: 큐 (0) | 2020.08.09 |
백준 | 9012번 :: 괄호 (0) | 2020.08.09 |
Comments