알고리즘/문제풀이

쇠막대기 자르기

lipnus 2018. 9. 10. 21:12
반응형

Sw Expert

5432. 쇠막대기 자르기


import java.util.Scanner;

public class Main {

public static void main(String[] args) {
// write your code here

Scanner sc = new Scanner(System.in);
int T = sc.nextInt();

for(int i=1; i<=T; i++){
String text = sc.next();
System.out.println("#" + i + " " + check(text) );
}

}

static int check(String text){

int bar = 0;
int piece = 0;

for(int i=0; i<=text.length()-2; i++){

String head= text.substring(i,i+2);

if(head.equals("((")){
bar++;
piece++;
}
if(head.equals("()")) piece += bar;
if(head.equals("))")) bar--;
}

return piece;

}
}



*큐를 이용한 풀이

int answer = 0;
Stack<Integer> st = new Stack<>();
for (int i = 0; i < arrangement.length(); i++) {
if (arrangement.charAt(i) == '(') {
st.push(i);
} else if (arrangement.charAt(i) == ')') {
if (st.peek() + 1 == i) {
st.pop();
answer += st.size();
} else {
st.pop();
answer += 1;
}
}
}
return answer;


반응형

'알고리즘 > 문제풀이' 카테고리의 다른 글

[Hash] 완주하지 못한 선수  (0) 2018.09.17
의석이의 우뚝 선 산  (0) 2018.09.14
[BFS] 미로탐색  (0) 2018.09.10
진수의 홀수 약수  (0) 2018.09.10
에라토스테네스의 체  (0) 2018.09.10