개발일기
올바른 괄호 - Java 본문
올바른 괄호 (스택/큐)
전형적인 Stack 문제이다.
그다지 어렵지 않았지만, 최대한 인덴트 1을 넘기지 않으려고 노력하였고, 그에따라서 processCharacter라는 메소드를 만들어서 문제를 풀었다.
또한 IllegalArgumentException을 사용하여 에러가 나왔을 때, try -catch문을 사용하여 에러를 잡고 이를 false로 던져주도록 만들었다.
마지막 return 은 stack.isEmpty()를 통해서 비어있는지 확인해서 리턴했다.
import java.util.*;
class Solution {
boolean solution(String s) {
Stack<Character> stack = new Stack<>();
try{
s.chars()
.mapToObj(ch -> (char) ch)
.forEach(ch -> processCharacter(ch, stack));
} catch(IllegalArgumentException e) {
return false;
}
return stack.isEmpty();
}
private static void processCharacter(char ch, Stack<Character> stack) {
switch(ch) {
case '(' -> stack.push(ch);
case ')' -> {
if(stack.isEmpty()) throw new IllegalArgumentException("순서 값 오류");
stack.pop();
}
}
}
}
'Algorithm' 카테고리의 다른 글
주식가격 - 프로그래머스 Level2 JAVA (2) | 2024.10.21 |
---|---|
괄호 회전하기 프로그래머스 - JAVA (2) | 2024.10.21 |
[JAVA] 입국심사 - 이진탐색 (0) | 2024.09.23 |
[JAVA] 프로그래머스 순위검색 - 이진탐색 (0) | 2024.09.23 |
프로그래머스 징검다리 [JAVA] (0) | 2024.09.23 |