-
[프로그래머스 / JAVA] 올바른 괄호 (정답 코드)코딩/코테준비(JAVA) 2025. 1. 31. 22:19
자바 공부와 코딩테스트 준비를 병행할 겸 자바로 코테 준비를 며칠 전 시작했다.
막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록해 두려고 한다.
그냥 미래의 복기용으로 나를 위해 적어둔 기록이다.
(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.)
이 문제는 "Stack 자료구조" 하면 맨 처음 마주하게 되는 대표적인 문제다.
괄호문자열을 왼쪽부터 순회한다고 할 때, 닫힌 괄호(')')가 나오면 그에 맞는 짝은, 이전까지 순회했던 열린 괄호('(')중 제일 최근에 등장한 열린 괄호이다.
나는 열린 괄호들을 스택에 쌓아두고, 닫힌 괄호가 나타날 때마다 스택에서 뽑아냈다.
정상적으로 짝지어진 문자열이라면, 전부 순회했을때 스택이 텅 비어있어야 한다.
만약 중간에 비어있는 스택에서 무언가 뽑아내려는 시도가 일어나거나, 다 끝났는데도 스택이 차있다면 정상적인 문자열이 아니라는 소리이다.import java.util.Stack; class Solution { boolean solution(String s) { boolean answer = true; Stack<Character> stack = new Stack<>(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == '(') { stack.push(c); } else { // c == ')' if (stack.isEmpty()) { return false; } else { // not empty stack.pop(); } } } if (!stack.isEmpty()) { return false; } return true; } }
하루에 한문제 이상 꾸준히 풀자.실수는 많이 할수록, 더 많이 배울 수 있다.
https://school.programmers.co.kr/learn/courses/30/lessons/12909프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
'코딩 > 코테준비(JAVA)' 카테고리의 다른 글
[프로그래머스 / JAVA] 크레인 인형뽑기 게임 (정답 풀이) (0) 2025.02.06 [프로그래머스 / JAVA] 주식 가격 (정답 풀이) (1) 2025.02.02 [프로그래머스 / JAVA] 짝지어 제거하기 (정답 코드) (0) 2025.02.01 [프로그래머스 / JAVA] 방문 길이 (잘못된 풀이) (0) 2025.01.31 [프로그래머스 / JAVA] 실패율 (중간에 막힘) (0) 2025.01.28