본문 바로가기

Algorithm/프로그래머스

프로그래머스 level1 문제 : 올바른 괄호(java)

반응형

import java.util.List;
import java.util.ArrayList;

char a = '(', b = ')';
private List<Integer> integerList1, integerList2;
boolean getParenthesis(String str) {
integerList1 = getIndexNumber(str, a);
integerList2 = getIndexNumber(str, b);

boolean answer = false;
int aCount = 0, bCount = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == a)
aCount++;
if (str.charAt(i) == b)
bCount++;
}

if( aCount == bCount ) {
answer = true;
for(int i=0; i < aCount; i++) {
if(integerList1.get(i) > integerList2.get(i)) {
answer = false;
break;
}
}
}

System.out.println(answer);
return answer;
}
private List<Integer> getIndexNumber(String str, char c) {
List<Integer> integerList = new ArrayList<>();
int fromIndex = 0;
while(true) {
int count = str.indexOf(c, fromIndex);
if(count == -1)
break;
else {
integerList.add(count);
fromIndex = count + 1;
}
}
return integerList;
}

이렇게 구현해서 테스트는 모두 통과했는데,


왜 효율성에서 통과를 못하지 궁금하네요..... 혹시 아시는분 댓글로좀 부탁드릴게요!!

반응형