본문 바로가기
알고리즘/JAVA

5. 쇠막대기

by vivi 2021. 9. 23.
import java.util.*;

class Main {
	public int solution(String str) {
		int answer = 0;
		Stack<Character> stack = new Stack<>();
		int lt = 0;
		for (char c : str.toCharArray()) {
			if (c == '(') {
				stack.push(c);
				lt++;
			} else if (c == ')') {
				if (stack.peek() == '(') {
					stack.push(c);
					lt--;
					answer += lt;
				} else {
					stack.push(c);
					lt--;
					answer += 1;
				}
			}
		}
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String str = kb.next();
		System.out.print(T.solution(str));
		kb.close();
	}
}

 

 

import java.util.*;

class Main {
	public int solution(String str) {
		int answer = 0;
		Stack<Character> stack = new Stack<>();
		for (int i = 0; i < str.length(); i++) {
			if (str.charAt(i) == '(') {
				stack.push(str.charAt(i));
			} else {
				stack.pop();
				if (str.charAt(i - 1) == '(') {
					answer += stack.size();
				} else {
					answer += 1;
				}
			}
		}
		return answer;
	}

	public static void main(String[] args) {
		Main T = new Main();
		Scanner kb = new Scanner(System.in);
		String str = kb.next();
		System.out.print(T.solution(str));
		kb.close();
	}
}

'알고리즘 > JAVA' 카테고리의 다른 글

7. 교육과정 설계  (0) 2021.09.23
6. 공주 구하기  (0) 2021.09.23
4. 후위식 연산(postfix)  (0) 2021.09.23
3. 크레인 인형뽑기(카카오)  (0) 2021.09.22
2. 괄호문자제거  (0) 2021.09.22

댓글