[프로그래머스|JAVA] 올바른 괄호 | 스택 사용 ⭕️ | 간단 풀이 | 스택 사용 ❌ 방법 | 풀이법 2️⃣가지

2025. 8. 24. 13:40·💻코딩/💡Programmers
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
'💻코딩/💡Programmers' 카테고리의 다른 글
  • [프로그래머스|JAVA] 스킬 트리 🌲 | 트리 순회 방식 | 선형 탐색
  • [프로그래머스|JAVA] 프로세스 | Queue 활용 ⭕️ | 자세한 코드 흐름 설명 💬
  • [프로그래머스|JAVA] 주식 가격 | 스택 / 큐 사용 ❌ | 간단 풀이 | 스택 / 큐 방법 포함 ⭕️ | 풀이법 2️⃣가지
  • [프로그래머스|JAVA] 로또의 최고 순위와 최저 순위 | Set 활용, 향상된 for문 연습 중 💬, case 문
망꼬누나
망꼬누나
공부한 내용을 정리하는 공간입니다.
  • 망꼬누나
    망꼬누나의 개발 공부
    망꼬누나
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • ℹ️ 정보 및 실습 (19)
        • ☑️ Git & GitHub (8)
        • ☑️ 프로젝트 (6)
        • ☑️ 회고 및 후기 (5)
      • 🛠 CS (1)
      • 💻코딩 (88)
        • 💡Baekjoon (17)
        • 💡Programmers (71)
      • ✏️공부 (48)
        • 💡OS (1)
        • 💡Network (6)
        • 💡SpringBoot (9)
        • 💡JAVA (21)
        • 💡SQL (1)
        • 💡DB (2)
        • ☁️ Cloud (4)
        • 💡알고리즘 (4)
      • 📌 자격증 (6)
        • 📝정보처리기사 (3)
        • 📝SQLD (3)
  • 블로그 메뉴

    • 홈
    • github
  • 나의 GitHub Contribution 그래프
    Loading data ...
  • 인기 글

  • 태그

    알고리즘
    데브코스
    Stream
    S3
    Java
    동시성제어
    백엔드
    트랜잭션
    코딩테스트
    프로그래머스 #JAVA
    github
    map
    Set
    AWS
    자료구조
    네트워크
    자바
    GIT
    프로그래머스
    baekjoon
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.5
망꼬누나
[프로그래머스|JAVA] 올바른 괄호 | 스택 사용 ⭕️ | 간단 풀이 | 스택 사용 ❌ 방법 | 풀이법 2️⃣가지
상단으로

티스토리툴바