πŸ‘©β€πŸ’» SWEA_1218_κ΄„ν˜Έμ§μ§“κΈ°

YOU KNOW I MEANΒ·2021λ…„ 4μ›” 26일
0
post-thumbnail

πŸ’¬ κ΄„ν˜Έμ™€ κ΄€λ ¨λœ 것은 stack..


πŸ’‘ 풀이 방법

  • 자료ꡬ쑰 쀑 ν•˜λ‚˜μΈ stack을 μ‚¬μš©ν•΄ κ΅¬ν˜„ν–ˆμŠ΅λ‹ˆλ‹€.
  • μ—΄λ¦° κ΄„ν˜Έλ“€μ€ stack에 λ„£κ³  λ‹«νžŒ κ΄„ν˜Έκ°€ μž…λ ₯될 경우 기쑴에 넣어진 μ—΄λ¦° κ΄„ν˜Έμ™€ 비ꡐλ₯Ό ν†΅ν•΄μ„œ 짝짓기 μ—¬λΆ€λ₯Ό νŒŒμ•…ν•©λ‹ˆλ‹€.

πŸ”₯ μ½”λ“œ

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

public class SWEA_1218_κ΄„ν˜Έμ§μ§“κΈ° {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		for(int t = 1; t <= 10; t++) {
		Stack<Character> stack = new Stack<>();
		int num = Integer.parseInt(br.readLine());
		String s = br.readLine();
		int flag = 1;
		
		for(int k = 0; k < num; k++) {
			if(s.charAt(k) == '(' || s.charAt(k) == '{' || s.charAt(k) == '[' || s.charAt(k) == '<') {
				stack.push(s.charAt(k));
			}
			else {
				if(stack.size() == 0) {
					flag = 0;
					break;
				}
				else {
					char tmp = stack.pop();
					if((s.charAt(k) == ')' && tmp == '(' )|| (s.charAt(k) == '}' && tmp == '{')
				|| (s.charAt(k) == ']' && tmp == '[') || (s.charAt(k) == '>' && tmp == '<')) {
						flag = 1;
						continue;
					}
					else {
						flag = 0;
						break;
					}
				}
			}			
		}
		System.out.println("#" + t + " " + flag);
		}
	}

}

0개의 λŒ“κΈ€

κ΄€λ ¨ μ±„μš© 정보