JAVA 코딩 알고리즘 연습/프로그래머스
프로그래머스 - 올바른 괄호 / JAVA (자바) 코딩 알고리즘 연습
easpop
2023. 1. 6. 14:56
728x90
반응형
반응형
코드의 정확도는 100% 였지만, 이상하게 효율성에서 실패했던 문제;;
처음에는 charAt에 0번째 인덱스를 스택에 넣고 나서, for문을 i = 1부터 시작했는데
효율성 테스트 2번에서 실패,,,, 그래서 한 줄 삭제하고 for문을 i = 0부터 했더니 통과..?
몰랐는데 효율성에 차이가 있나보다....
어쨌든 코드 짜는것은 어렵지 않았지만, 효율성 통과를 위해 if문에서 else if를 최대한 줄인게 포인트!
그리고 추가적으로, () 괄호는 ok이지만 )( 괄호는 안된다는 것!
그 부분만 주의하면 Stack을 써서 어렵지 않게 구현할 수 있다!
import java.util.Stack;
class Solution {
boolean solution(String s) {
boolean answer = true;
Stack<Character> stack = new Stack<>();
for (int i = 0; i < s.length(); i++) {
if (stack.size() > 0) {
if (stack.peek() == '(') {
if (s.charAt(i) == ')') {
stack.pop();
continue;
}
}
}
stack.push(s.charAt(i));
}
if (stack.isEmpty()) {
return true;
} else {
return false;
}
}
}
728x90
반응형