프로그래머스의 올바른 괄호 문제를 풀어봤습니다.
링크
https://school.programmers.co.kr/learn/courses/30/lessons/12909
문제
풀이
괄호가 올바르게 만들어지면 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 문제로 분류되어 있어서 해당 자료구조를 사용했습니다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스] 같은 숫자는 싫어 (0) | 2022.11.22 |
---|---|
[프로그래머스] 소수 찾기 (0) | 2022.10.21 |
[프로그래머스] 모의고사 (0) | 2022.10.19 |
[프로그래머스] 문자열을 정수로 바꾸기 (0) | 2022.10.18 |
[프로그래머스] 최소직사각형 (0) | 2022.10.17 |