접근 방법
스택의 원리를 이용하여 구현하면 쉽게 해결할 수 있다.
스택에 왼쪽 괄호를 먼저 저장하고, 그 다음 오는 오른쪽 괄호가 짝이 맞는지 확인하면 완전한 문장인지 체크할 수 있다.
코드
import java.util.Scanner;
import java.util.Stack;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String s;
while(true){
s = in.nextLine();
if(s.equals(".")) break;
System.out.println(checkPerfect(s));
}
}
public static String checkPerfect(String s){
Stack<Character> stack = new Stack<>();
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
if(c == '(' || c == '[') {
stack.push(c);
} else if (c == ')'){
if(stack.empty() || stack.peek() != '(')
return "no";
else stack.pop();
} else if (c == ']') {
if(stack.empty() || stack.peek() != '[')
return "no";
else stack.pop();
}
}
if(stack.empty()){
return "yes";
} else{
return "no";
}
}
}
'알고리즘 > Class 2' 카테고리의 다른 글
백준 BOJ 4153번 - 직각삼각형 (0) | 2022.09.05 |
---|---|
백준 BOJ 2869번 - 달팽이는 올라가고 싶다 (0) | 2022.09.03 |
백준 BOJ 2839번 - 설탕 배달 (0) | 2022.08.31 |
백준 BOJ 2805번 - 나무 자르기 (0) | 2022.08.30 |
백준 BOJ 2798번 - 블랙잭 (0) | 2022.08.30 |
댓글