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;
}
이렇게 구현해서 테스트는 모두 통과했는데,
왜 효율성에서 통과를 못하지 궁금하네요..... 혹시 아시는분 댓글로좀 부탁드릴게요!!
'Algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 level1 문제 : 완주하지 못한 선수(java) (0) | 2018.10.10 |
---|---|
프로그래머스 level1 문제 : 나누어 떨어지는 숫자 배열(java) (0) | 2018.06.01 |
프로그래머스 level1 문제 : 같은 숫자는 싫어 (0) | 2018.05.31 |
프로그래머스 level1 문제 : 2016년 (0) | 2018.05.28 |
프로그래머스 Level1 (0) | 2018.05.22 |