IT/알고리즘
프로그래머스 쇠막대기 문제(java)
어센트
2019. 11. 11. 14:04
public int solution(String arrangement) {
int answer = 0;
String temp = arrangement.replace("()", "0");
Stack s = new Stack<Character>();
for(int i=0;i<temp.length();i++) {
char t = temp.charAt(i);
if(t=='(') {
s.push(t);
}
else if(t=='0') {
answer+=s.size();
}
else if(t==')') {
answer++;
s.pop();
}
}
System.out.println(answer);
return answer;
}
1.()인 경우절단하기 때문에 알아보기 쉽게 '()'를 '0'으로 교체
2.0이 나오면 그전에 쌓아오던 '(' 의 개수를 다 더해주고 ')' 이 나오면 1만 더해주고 팝