728x90
반응형
[문제 링크]
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
[문제]

📍 [이전 코드]
class Solution {
boolean solution(String s) {
boolean answer = true;
int cnt = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == '(') {
cnt += 1;
}
else if(s.charAt(i) == ')') {
cnt -= 1;
}
if(cnt < 0) {
break;
}
}
if(cnt != 0) {
answer = false;
}
return answer;
}
}
✅ charAt() 활용하여 카운트 하는 방식
📍 [Stack 활용]
import java.util.*;
class Solution {
boolean solution(String s) {
Stack<Character> stack = new Stack<>();
for(char c : s.toCharArray()) {
if(c == '(') stack.push(c);
else {
if (stack.isEmpty()) return false; // 필수 : 비어있는데 삭제 할 수 없음
stack.pop();
}
}
return stack.isEmpty(); // 스택이 비어있으면 ture : 괄호 짝이 맞다
}
}
💡 접근법
- 스택에 열린 괄호면
push() - 닫힌 괄호면
pop()
➡️ 이때 스택이 비어 있으면 삭제할 수 없으므로 꼭 예외처리 해주기 - 최종적으로 스택이 비었으면 짝이 맞는 것이므로 반환
✅ Stack 활용
✅ isEmpty() 활용
→ 스택 비어있으면 ture / 반대면 false 반환
💬 이번 문제는 Stack을 사용하는 것이 훨씬 깔끔한 문제인 것 같다.
자료 구조에 대해서 더 공부하고
적절한 상황에서 활용하려고 노력해야겠다.
728x90
반응형
'💻코딩 > 💡Programmers' 카테고리의 다른 글
| [프로그래머스|JAVA] 스킬 트리 🌲 | 트리 순회 방식 | 선형 탐색 (0) | 2025.08.24 |
|---|---|
| [프로그래머스|JAVA] 프로세스 | Queue 활용 ⭕️ | 자세한 코드 흐름 설명 💬 (0) | 2025.08.24 |
| [프로그래머스|JAVA] 주식 가격 | 스택 / 큐 사용 ❌ | 간단 풀이 | 스택 / 큐 방법 포함 ⭕️ | 풀이법 2️⃣가지 (4) | 2025.08.24 |
| [프로그래머스|JAVA] 로또의 최고 순위와 최저 순위 | Set 활용, 향상된 for문 연습 중 💬, case 문 (4) | 2025.08.14 |
| [프로그래머스|JAVA] 같은 숫자는 싫어 🙅♀️ | ArrayList, stream 방식, 향상된 for문 활용 (1) | 2025.08.14 |