프로그래머스의 올바른 괄호 문제를 풀어봤습니다.

 

링크

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

 

풀이

괄호가 올바르게 만들어지면 true
괄호가 올바르게 만들어지지 않으면 false

올바른 경우
'()'  true

올바르지 않은 경우
')('  false
')'  false
'('  false


스택을 사용하여 문제를 풀었습니다.
'(' 는 추가시키고 ')' 는 제거하였습니다.
최종적으로 Stack에 아무것도 남아있지 않아야 올바른 괄호라고 판단했습니다.
최초에 ')' 가 먼저 들어오면 올바른 괄호가 아닙니다.

boolean solution(String s) {
    Stack<Character> stack = new Stack<>();
    for (int i = 0; i < s.length(); i++) {
        char c = s.charAt(i);
        if ('(' == c) {
            stack.add(c);
            continue;
        }
        if (')' == c) {
            if (stack.empty()) return false;
            stack.pop();
            continue;
        }
    }
    return stack.empty();
}

 

후기

* 난이도 (5점 만점)

5 : 풀 줄 알면 기업 코딩 테스트는 문제없음.

4 : 평균적인 기업 코딩 테스트의 중간 이상.

3 : 평균적인 기업 코딩테스트의 쉬운 문제.

2 : 알고리즘 문제를 연습하고 있다면 풀 수 있는 문제.

1 : 시간이 오래 걸리지 않고, 누구나 풀 수 있는 문제.

 

프로그래머스 올바른 괄호 문제는 stack, queue 문제로 분류되어 있어서 해당 자료구조를 사용했습니다.

+ Recent posts