[Algorithm] 프로그래머스_올바른 괄호(JAVA)

2024. 12. 10. 01:56·Algorithm

https://school.programmers.co.kr/learn/courses/30/lessons/12909

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


이 문제는 스택을 사용하여

")" 문자가 나오면 "(" 문자를 스택에서 꺼내는 방식으로 접근한다.

 

그림을 그려보면 이해가 쉽다.

문자를 다 꺼낸 후에도 스택에 남아있다면 짝이 맞지 않는 문자열만 남았으므로 false가 된다.

 

추가로 아래 두 가지 경우도 false가 된다.

1.")"를 꺼냈는데 스택이 비어 있는 경우

2. ")"를 꺼낸 후 다음 문자열이 "("이 아닌 경우

 

위 내용을 토대로 구현한 코드는 아래와 같다.

import java.util.*;
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        Stack<String> stack = new Stack<>();
        for(int i = 0; i < s.length(); i++) {
            stack.push(s.substring(i, i+1));
            if(stack.peek().equals(")")){
                stack.pop();
                if(stack.isEmpty()){
                    return false;
                }
                if(!stack.pop().equals("(")){
                    return false;
                }
            }
        }
        if(!stack.isEmpty()) return false;
        return answer;
    }
}

 

 

 

'Algorithm' 카테고리의 다른 글

[Algorithm] 프로그래머스_네트워크(JAVA)  (0) 2024.12.11
[Algorithm] 프로그래머스_K번째수(JAVA)  (2) 2024.12.11
[Algorithm] 프로그래머스_타겟넘버(JAVA)  (3) 2024.12.10
[Algorithm] 프로그래머스_특이한 정렬(JAVA), 우선순위 큐, Comparator  (6) 2024.12.05
[Algorithm] 프로그래머스_겹치는 선분의 길이(Java)  (0) 2024.12.05
'Algorithm' 카테고리의 다른 글
  • [Algorithm] 프로그래머스_네트워크(JAVA)
  • [Algorithm] 프로그래머스_K번째수(JAVA)
  • [Algorithm] 프로그래머스_타겟넘버(JAVA)
  • [Algorithm] 프로그래머스_특이한 정렬(JAVA), 우선순위 큐, Comparator
dev_ajrqkq
dev_ajrqkq
알고리즘 천재가 될 거야
  • dev_ajrqkq
    기록이 자산이다
    dev_ajrqkq
  • 전체
    오늘
    어제
    • 분류 전체보기 (147)
      • Front-end (0)
      • Back-end (11)
        • Spring (1)
        • Java (8)
      • CS (9)
        • 데이터베이스 (5)
        • 네트워크 (4)
      • Algorithm (80)
      • 이것저것 (0)
      • 버그잡기 (1)
      • TIL (37)
      • 후기 (1)
      • 취준 (0)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      오블완
      Til
      개발자취업
      코딩테스트준비
      TypeScript
      항해99
      99클럽
      티스토리챌린지
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.2
    dev_ajrqkq
    [Algorithm] 프로그래머스_올바른 괄호(JAVA)
    상단으로

    티스토리툴바