본문 바로가기
알고리즘/문제풀이

[Java] 백준 4949 : 균형잡힌 세상

by abcodef 2021. 12. 15.

🔗 문제 내용

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

댓글