프로그래머스 12909 올바른 괄호 JAVA

sundays·2023년 6월 2일
0

문제

링크텍스트

풀이

이 문제는 스택 문제니까 스택으로 풀었습니다.
물론 스택을 안써도 됩니다. 다른 분들 풀이를 보니까 임의의 temp값을 두고 여는 괄호가 나올때 +1을해주고 닫는 괄호가 나올때 -1을 해주고 있습니다. 저도 해당 로직으로 for문으로 사용하였습니다. isEmpty()를 사용할때 temp값은 마이너스를 넘기지 않아야 하므로 바로 retrun false를 출력하면 됩니다.

  1. stack에 여는 괄호 데이터를 넣고 닫는 괄호가 나올때마다 하나씩 꺼내서 검증해줍니다.
Stack<Character> s = new Stack<>();
for (int i = 0; i < s.length(); i++) {
	if (s.charAt(i) == '(') {
		s.push('(');		
    } else {
    	if (s.isEmpty()) {
        	return false;
        } else {
        	s.pop();
        }
    }
}

제가 스택을 넣고 보니까. 제가 올린 전체코드에는 검증하는 데이터를 넣었었는데, 생각해보니
소괄호만 사용하기 때문에 조건문에는 if (s.isEmpty()) 만 들어가도 되겠네요

  1. stack에 데이터가 남아있으면 괄호가 정상적으로 닫긴것이 아닙니다
if (!s.isEmpty()) {
	return false;
}

전체 코드

전체 코드

profile
develop life

0개의 댓글