22.03.01 백준 4949번

김민혁·2022년 3월 1일
0

하루한문제

목록 보기
20/22

문제

import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while(true) {
			String input = sc.nextLine();
			if(input.equals(".")) break;
			String str = "";
			for (int i = 0; i < input.length(); i++) {
				if(input.charAt(i)==40||input.charAt(i)==41) {
					str += input.charAt(i);
				} else if(input.charAt(i)==91||input.charAt(i)==93) {
					str += input.charAt(i);
				}
			}
			
			while(str.contains("()")||str.contains("[]")) {
				str = str.replaceFirst("\\(\\)", "");
				str = str.replaceFirst("\\[\\]", "");
			}
			System.out.println(str.length()==0?"yes":"no");
		}
	}
}

접근방식 -> 먼저 ( )와 [ ]를 제외한 문자열을 새로만들고
해당문자열을 ( )과 [ ] 가 모두 포함되어 있지 않을때 까지 ( )와 [ ]를 제거시킨다. 반복이 끝났으면 str의 길이가 0일때는 yes 아니면 no 출력

profile
안녕하세요 김민혁입니다.

0개의 댓글