코딩 테스트/5. Stack, Queue
Q5 - 1 올바른 괄호
길동이이이잉
2021. 9. 23. 22:05
728x90
반응형
1. 올바른 괄호
* 설명
괄호가 입력되면 올바른 괄호이면 “YES", 올바르지 않으면 ”NO"를 출력합니다.
(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.
* 입력
첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다.
* 출력
첫 번째 줄에 YES, NO를 출력한다.
* 예시 입력 1
(()(()))(()
* 예시 출력 1
NO
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String in1 = in.nextLine();
//스택 사용 문제 last in first out
//push() pop()
Stack<Character> stack = new Stack<>();
for(char x : in1.toCharArray()){
if(x == '('){
stack.push(x);
}else{
if(stack.isEmpty()){
System.out.println("NO");
}
stack.pop();
}
}
if(!stack.isEmpty()) System.out.println("NO");
else System.out.println("YES");
}
}
import java.util.*;
class Main {
public String solution(String str){
String answer="YES";
Stack<Character> stack=new Stack<>();
for(char x : str.toCharArray()){
if(x=='(') stack.push(x);
else{
if(stack.isEmpty()) return "NO";
stack.pop();
}
}
if(!stack.isEmpty()) return "NO";
return answer;
}
public static void main(String[] args){
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str=kb.next();
System.out.println(T.solution(str));
}
}
728x90
반응형