-
(Java) Programmers 올바른 괄호Algorithm 2023. 12. 1. 12:16반응형
- 목차
문제 소개.
https://school.programmers.co.kr/learn/courses/30/lessons/12909
문제 풀이.
문자열 s 의 괄호 패턴을 추적하기 위해서 스택을 사용합니다.
스택에는 "(" 문자열이 추가될 수 있구요.
"(" 이 스택에 존재하는 상황에서 ")" 문자를 만나게 되면, 스택를 Pop 합니다.
이런 식으로 문자열을 순회하게 되면,
올바른 문자열 s 인 경우에는 스택이 비어있게 되고,
올바르지 않은 문자열 s 의 경우에는 스택에 괄호 문자들이 남아있게 됩니다.
< 문제 풀이 >
import java.util.*; class Solution { boolean solution(String s) { // 스택에는 ( 만을 추가할 수 있습니다. Stack<String> stack = new Stack(); int stackMaxCounter = 0; for (int i = 0; i < s.length(); i++) { String part = s.substring(i, i + 1); // ( 인 경우에 stack 에 push 합니다. if (part.equals("(")) { stack.push(part); stackMaxCounter++; continue; } // 만약 어떠한 ( 없이 ) 가 있다면 해당하는 문자열은 잘못된 조합의 괄호입니다. if (part.equals(")") && stack.isEmpty()) { return false; } // ) 인 경우에 stack 에서 pop 합니다. if (part.equals(")") && !stack.isEmpty()) { stack.pop(); continue; } } return stack.isEmpty() && stackMaxCounter > 0; } }
반응형'Algorithm' 카테고리의 다른 글
(Java) Programmers 예상 대진표 (0) 2023.12.02 Programmers 다음 큰 숫자 (0) 2023.12.01 (Java) Programmers 124 나라의 숫자 (0) 2023.12.01 Programmers 게임 맵 최단거리 (0) 2023.12.01 Programmers 카카오 프렌즈 컬러링북 (0) 2023.12.01