봄봄.devlog

백준 | 10799번 :: 쇠막대기 본문

Algorithm/백준

백준 | 10799번 :: 쇠막대기

jihyun03 2020. 8. 9. 17:20

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