728x90
반응형
백준
https://www.acmicpc.net/problem/4949
- 오늘의 학습 키워드 : Stack
- 공부한 내용 본인의 언어로 정리하기
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (true) { String input = br.readLine(); if (input.equals(".")) break; Stack<String> stack = new Stack<>(); String[] arr = input.split(""); for (String a : arr) { switch (a) { case ("("): case ("["): stack.push(a); break; case (")"): if (!stack.isEmpty() && stack.peek().equals("(")) stack.pop(); else stack.push(")"); break; case ("]"): if (!stack.isEmpty() && stack.peek().equals("[")) stack.pop(); else stack.push("]"); break; } } if (stack.isEmpty()) System.out.println("yes"); else { System.out.println("no"); } } } }
- 오늘의 회고
- 분기점이 너무 많아지고 복잡해져서 단순하게 다시 생각해서 풀었다.
처음에 정말 지저분하고 가독성도 좋지 않은 코드였다.
좀 더 체계적으로 코딩할 필요성을 느꼈다.더보기import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Stack; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); while (true) { String input = br.readLine(); if (input.equals(".")) break; String[] arr = input.split("\\s"); // 입력 값 공백 split Stack<String> stack = new Stack<>(); for (int i=0; i<arr.length; i++) { if (stack.size() == 1 && (stack.peek().equals(")") || stack.peek().equals(")"))) { System.out.println("No"); } if (arr[i].contains("(") || arr[i].contains("[")) { stack.push(String.valueOf(arr[i].charAt(0))); } if (arr[i].contains(")") && stack.contains("(") || arr[i].contains("]") && stack.contains("[")) { stack.pop(); } if (arr[i].contains(".") && stack.isEmpty()) { System.out.println("Yes"); } } } } }
- 분기점이 너무 많아지고 복잡해져서 단순하게 다시 생각해서 풀었다.
99클럽 1기를 수강하면서 작성한 글입니다.
728x90
반응형
'Blog > Education' 카테고리의 다른 글
99클럽 코테 스터디 7일차 TIL + 정렬 (Collection.sort) (0) | 2024.03.31 |
---|---|
99클럽 코테 스터디 6일차 TIL + Stack (0) | 2024.03.30 |
99클럽 코테 스터디 4일차 TIL + 패턴 분석 (0) | 2024.03.28 |
99클럽 코테 스터디 3일차 TIL + 람다식 (0) | 2024.03.27 |
99클럽 코테 스터디 2일차 TIL + Map put/get swap (0) | 2024.03.26 |
댓글