연권
달콘박스
연권
전체 방문자
오늘
어제
  • 전체 (308)
    • Web (22)
      • JavaScript (8)
      • TypeScript (2)
      • Node.js (8)
      • HTML (0)
      • CSS (0)
      • Network (1)
      • Browser (0)
      • Patterns (3)
    • Framwork (4)
      • Vue.js (3)
      • Electron (1)
    • Infra&DevOps (1)
    • Algorithm (246)
    • Database (16)
    • Review (15)
    • Test (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • MySQL
  • 백준
  • 동적계획법
  • DP
  • sql
  • 문자열
  • 프로그래머스
  • java
  • 알고리즘
  • 재귀
  • 정렬
  • 스택
  • typescript
  • 백트레킹
  • 코딩테스트 연습
  • BFS
  • 진법
  • javascript
  • 백준ㅇ
  • 진수

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
연권

달콘박스

백준 4889번 안정적인 문자열 [ Java ]
Algorithm

백준 4889번 안정적인 문자열 [ Java ]

2020. 12. 28. 01:12
반응형
 

4889번: 안정적인 문자열

입력은 여러 개의 데이터 세트로 이루어져 있다. 각 데이터 세트는 한 줄로 이루어져 있다. 줄에는 여는 괄호와 닫는 괄호만으로 이루어진 문자열이 주어진다. 문자열의 길이가 2000을 넘는 경우

www.acmicpc.net

처음 입력에서 안정적인 괄호 쌍들은 모두 제거 합니다.

ex) 입력 : {{{}{}{{ -> {{{{

그 다음 남은 괄호들이 문제인데 머릿속에 떠오른 규칙성있게 짝맞추는 방법이 두가지가 있었습니다.

1. 큰 괄호에서 작은 괄호로 묶는 식으로 바꾸자 ex) {{{{}}}}

2. 두 개씩 맞추자 ex) {}{}{}{}

근데 스택구조상 2번째 방법이 처리 과정이 단순하다고 생각해서 두 번째 방법으로 했습니다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int index = 1;
        while(true){
            Stack<String> stack = new Stack<>();
            String[] input = br.readLine().split("");
            if (input[0].equals("-")) break;
            for (String str : input){
                if (stack.isEmpty()) stack.push(str);
                else if (stack.peek().equals("{") && str.equals("}")) stack.pop();
                else stack.push(str);
            }
            int sum = 0;
            while (!stack.isEmpty()){
                if (stack.pop().equals("{")) sum++;
                if (stack.pop().equals("}")) sum++;
            }
            System.out.println(index+++". "+ sum);
        }
    }
}

 

반응형
저작자표시 동일조건 (새창열림)

'Algorithm' 카테고리의 다른 글

백준 16673번 고려대학교에는 공식 와인이 있다 [ Java ]  (0) 2020.12.28
백준 10799번 쇠막대기 [ Java ]  (0) 2020.12.28
백준 5430번 AC [ Java ]  (0) 2020.12.27
백준 6198번 옥상 정원 꾸미기 [ Java ]  (0) 2020.12.27
백준 2493번 탑 [ Java ]  (0) 2020.12.26
    'Algorithm' 카테고리의 다른 글
    • 백준 16673번 고려대학교에는 공식 와인이 있다 [ Java ]
    • 백준 10799번 쇠막대기 [ Java ]
    • 백준 5430번 AC [ Java ]
    • 백준 6198번 옥상 정원 꾸미기 [ Java ]
    연권
    연권

    티스토리툴바