🔗 문제 내용
https://www.acmicpc.net/problem/4949
4949번: 균형잡힌 세상
하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마
www.acmicpc.net
🌱 문제 풀이 방법
자료구조 시간에 스택 배운걸 떠올리면서 풀었다.
https://abcodef.tistory.com/11?category=903621
[Java] 백준 9012 : 괄호
🔗 문제 내용 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르..
abcodef.tistory.com
9012 괄호 문제와 유사해 그 코드를 활용했더니 깔끔하지 않아서 수정할 예정이다.
🤔 공부가 필요한 부분
더 깔끔하게 코드 작성하기
문제 제대로 안봐서 yes, no가 아닌 YES, NO로 출력해서 한번 틀렸음ㅠ
💻 코드
// 수정 예정
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Stack<Character> stack = new Stack<>();
while (true) {
String str = sc.nextLine();
if (str.equals(".")) {
break;
}
String answer = "yes";
for (int r = 0; r < str.length(); r++) {
if (str.charAt(r) == '(' || str.charAt(r) == '[') {
stack.push(str.charAt(r));
} else if (str.charAt(r) == ')') {
if (!stack.isEmpty()) {
if (stack.peek() == '(') {
stack.pop();
} else
answer = "no";
} else
answer = "no";
} else if (str.charAt(r) == ']') {
if (!stack.isEmpty()) {
if (stack.peek() == '[') {
stack.pop();
} else
answer = "no";
} else
answer = "no";
}
}
if (!stack.isEmpty())
answer = "no";
stack.clear();
System.out.println(answer);
}
sc.close();
}
}
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Java] 백준 7568 : 덩치 (0) | 2021.12.15 |
---|---|
[Java] 백준 9012 : 괄호 (0) | 2021.12.15 |
[Java] 백준 2798 : 블랙잭 (0) | 2021.12.14 |
[Java] 백준 2751 : 수 정렬하기 2 (0) | 2021.12.13 |
[Java] 백준 1259 : 팰린드롬수 (0) | 2021.11.28 |
댓글