5. 쇠막대기

2023. 10. 19. 18:41·알고리즘/Stack, Queue(자료구조)

1. 문제

1. 레이저는 여는 괄호와 닫는 괄호의 인접한 쌍 ‘( ) ’ 으로 표현된다. 또한, 모든 ‘( ) ’는 반 드시 레이저를 표현한다.

2. 쇠막대기의 왼쪽 끝은 여는 괄호 ‘ ( ’ 로, 오른쪽 끝은 닫힌 괄호 ‘) ’ 로 표현된다.

 

2 - 1. 나의 풀이

풀지 못함.

닫는 괄호 ' ) ' 가 나왔을 때, 이를 레이저인지 쇠막대기의 끝인지 stack 으로만 판단하려고 해서 풀지 못했다.

3 - 1. 강의 풀이

stack 만 아니라 쇠막대기를 받은 String.charAt(i - 1)을 사용해서 닫는 괄호 ' ) ' 가 나왔을 때, 이를 레이저인지 쇠막대기의 끝인지 판단할 수 있었다.

 

3 - 2. 강의 코드

package Stack_Queue;

import java.util.*;

public class stack_05 {
    public static int solution(String str) {
        int answer = 0;
        Stack<Character> st = new Stack<>();

        for (int i = 0; i < str.length(); i++) {
            char tmp = str.charAt(i);
            if(tmp=='(') st.push(tmp);
            else{
                if(str.charAt(i-1) == '('){
                    st.pop();
                    answer += st.size();
                }else{
                    st.pop();
                    answer += 1;
                }
            }
        }
        return answer;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String str = sc.next();

        System.out.println(solution(str));
    }


}

 

4. 얻어갈 점

며칠 뒤에 다시 풀려 했으나 String.charAt(i - 1)을 떠올리지 못했다.

정진하자.

'알고리즘 > Stack, Queue(자료구조)' 카테고리의 다른 글

7. 교육과정 설계  (1) 2023.10.19
6. 공주 구하기  (1) 2023.10.19
4. 후위식 연산  (1) 2023.10.19
3. 크레인 인형뽑기  (0) 2023.10.19
2. 괄호문자제거  (0) 2023.10.08
'알고리즘/Stack, Queue(자료구조)' 카테고리의 다른 글
  • 7. 교육과정 설계
  • 6. 공주 구하기
  • 4. 후위식 연산
  • 3. 크레인 인형뽑기
송우석입니다
송우석입니다
  • 송우석입니다
    송우석
    송우석입니다
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (138) N
      • JAVA (1)
      • 알고리즘 (84) N
        • 백준 (8)
        • String(문자열) (12)
        • Array(1, 2차원 배열) (13) N
        • Two pointers, Sliding windo.. (6)
        • HashMap, TreeSet(해쉬, 정렬지원 S.. (5)
        • Stack, Queue(자료구조) (8)
        • Sorting and Searching(정렬, 이.. (10)
        • Recursive, Tree, Graph(DFS,.. (14)
        • DFS, BFS 활용 (6)
        • 다시 시작! (1)
        • 기초 수학 (1) N
      • 일상 (19)
      • Github (1)
      • MSA 공부 (3)
      • 경제, 금융, 디지털, 시사 (3)
      • 라즈베리파이 (10)
      • 프로젝트에서 일어난 일 (13)
      • FrontEnd 공부 (4) N
        • React (3) N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.3
송우석입니다
5. 쇠막대기
상단으로

티스토리툴바