난이도 쉬움
Given a string s containing just the characters '(', ')', '{', '}', '[' and ']', determine if the input string is valid.
An input string is valid if:
- Open brackets must be closed by the same type of brackets.
- Open brackets must be closed in the correct order.
'(', ')', '{', '}', '[' 및 ']' 문자만 포함하는 문자열 s가 주어지면 입력 문자열이 유효한지 확인합니다.
다음과 같은 경우 입력 문자열이 유효합니다.
열린 브래킷은 동일한 유형의 브래킷으로 닫아야 합니다.
열린 브래킷은 올바른 순서로 닫아야 합니다.
Example 1:
Input: s = "()"
Output: true
Example 2:
Input: s = "()[]{}"
Output: true
Example 3:
Input: s = "(]"
Output: false
답안지
import java.util.*;
class Solution {
public boolean isValid(String s) {
if(s.length()%2 != 0) return false;
Stack<Character> stack = new Stack<Character>();
for(int i =0; i<s.length(); i++) {
if(s.charAt(0) == ')' || s.charAt(0) == '}' || s.charAt(0) == ']'){
return false;
}
switch(s.charAt(i)) {
case ')':
if(stack.empty()) return false;
if(stack.peek() == '(') stack.pop();
else return false;
break;
case '}':
if(stack.empty()) return false;
if(stack.peek() == '{') stack.pop();
else return false;
break;
case ']':
if(stack.empty()) return false;
if(stack.peek() == '[') stack.pop();
else return false;
break;
default :
stack.push(s.charAt(i));
break;
}
}
return stack.empty();
}
}
example만 보고 풀어보다가 하도 안풀려서 인터넷에 돌아다니는 답안지에 예외처리만 좀 보탰다.
-_-.....
문제해결답안을 보면 아! 하지만 그건 내것이 아니라고했다.(ㅠㅠ...)
이 문제는 스택에 대한 공부가 안돼있다면 접근을 못할거라 생각한다.
내일은 스택에 대해 복습과 큐에 대해서도 복습을 진행해보자.
'코딩테스트 > 문제' 카테고리의 다른 글
9. Palindrome Number (0) | 2022.05.24 |
---|