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
반응형