728x90
반응형
Programmers 프로그래머스 12909 올바른 괄호 문제는 '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호인지 구하는 문제이다. 스택/큐 유형의 문제로 난이도는 Level 2이다.
Programmers 12909 올바른 괄호 문제 정보
출처
- https://school.programmers.co.kr/learn/courses/30/lessons/12909
알고리즘 분류
- 스택/큐 (Stack/Queue)
난이도
- Level 2
올바른 괄호 문제 요약
- 문자열 s가 주어졌을 때, 괄호가 바르게 짝지어졌는지 구한다.
- 문자열 s의 길이 : 100,000 이하의 자연수
- 문자열 s는 '(' 또는 ')' 로만 이루어져 있다.
문제 풀이 과정
문자열의 길이가 홀수이면 어떤 조합이든 짝을 지을 수 없으므로 false 를 early return 한다.
괄호 문자를 하나 씩 순회하기 위해 char 배열로 변환한다.
괄호가 '(' 면 stack 에 push, ')' 면 stack 에 있는 '(' 를 pop 한다.
')' 차례인데, stack 이 비어있다면, 짝이 맞지 않으므로 false 를 반환한다.
마지막 stack.isEmpty() 를 확인한다. false 인 경우는 '(' 가 남아있음을 뜻한다.
코드 및 설명
import java.util.Stack;
class Solution {
boolean solution(String s) {
boolean answer = true;
// 홀수개면 짝을 지을 수 없다
if (s.length() % 2 != 0) {
return false;
}
char[] brackets = s.toCharArray();
Stack<Character> stack = new Stack<>();
for (char bracket : brackets) {
if (bracket == '(') {
stack.push(bracket);
continue;
}
// ')' 만 있을 때
if (stack.isEmpty()) {
return false;
}
stack.pop();
}
// '(' 가 남아있는 경우
return stack.isEmpty();
}
}
Programmers 프로그래머스 12909 올바른 괄호 문제를 자바 Java 로 풀어보았다. 난이도는 Level 2 이다.
728x90
반응형
'Algorithm PS (JAVA) > Stack & Queue' 카테고리의 다른 글
[JAVA/Programmers] 42586 기능개발 (자바/프로그래머스) (0) | 2024.05.24 |
---|
댓글