처음에 replace로 간단하게 풀려했다가 효율성 통과를 못해서 스택으로 변경했다.ㅠㅠ
스택을 사용한 경우엔 시간복잡도가 O(N)이고 replace를 사용한 경우 O(N²)이라고 한다.
앞으로는 귀찮다고 불필요하게 replace를 남용하면 안될거같다.
//LV2. 올바른 괄호
public static boolean solution_correct_bracket(String s) {
int i=0;
Stack<Character> stack = new Stack<>();
while(i<s.length()){
char c = s.charAt(i++);
if(stack.empty()){
if('('==c) stack.push(c);
else return false;
}
else if('('==c) stack.push(c);
else if(')'==c){
if('('==stack.peek()) stack.pop();
else return false;
}
else return false;
}
return stack.empty()?true:false;
}
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] LV2. 광물 캐기 (0) | 2023.03.28 |
---|---|
[Programmers] LV2. 최솟값 만들기 (0) | 2023.03.22 |
[Programmers] LV1 (0) | 2023.03.22 |
[Programmers] LV.2 귤고르기 (0) | 2023.03.20 |
[Programmers] LV2. 2개이하로 다른 비트 (0) | 2023.03.20 |