티스토리 뷰
- 문제해석
- '(', ')', '{', '}', '[', ']' 의 characters 를 String 값으로 입력받아 페어가 맞는지 확인하여 맞으면 true, 틀리면 false를 반환한다.
- 처음 생각
- 처음에는 Stack의 Last-in-First-out 을 생각하지 못하고 Array 로 억지로 풀려고 했다.
- Stack을 정리한 적이 있었는데 코딩문제에서는 처음 접해본 듯 하다. 다음부턴 페어문제에서는 Stack을 고려해 보아야겠다.
- String을 Character array로 만들어주는 함수인 toCharArray()를 모르고 array를 하나씩 chatAt[i]해주면서 character로 변환해 주었다.
- 처음에는 Stack의 Last-in-First-out 을 생각하지 못하고 Array 로 억지로 풀려고 했다.
- 코드 해석
- Stack을 선언
- forEach문을 통해 String 값을 Character로 하나씩 변환하면서 입력받은 c로 switch문을 통해 닫히는 c를 하나씩 비교한다.
- ')'인 경우
- stack 이 비어있거나 '('가 아닌경우 false를 반환하면서 break로 switch 문을 종료한다.
- 위와 같은 방법으로 '}'와 ']'도 비교한다.
- ')', '}', ']'이 아닌 경우 default 로 stack에 넣는다.
- ')'인 경우
- for문이 끝났는데 stack이 비어있다면 '(', '{', '[' 등이 들어있는 것이므로 페어가 안맞아 false를 반환한다.
class Solution {
public boolean isValid(String s) {
Stack<Character> stack = new Stack<>();
for (Character c : s.toCharArray()) {
switch (c) {
case ')':
if (stack.isEmpty() || stack.pop() != '(')
return false;
break;
case '}':
if (stack.isEmpty() || stack.pop() != '{')
return false;
break;
case ']':
if (stack.isEmpty() || stack.pop() != '[')
return false;
break;
default:
stack.push(c);
}
}
return stack.isEmpty();
}
}
'algorithm' 카테고리의 다른 글
[Algorithm] 순환(recursion) 알고리즘(예제) (0) | 2020.05.30 |
---|---|
[Algorithm] 순환(recursion) 알고리즘 (0) | 2020.05.30 |
[Algorithm] LeetCode 448. Find All Numbers Disappeared in an Array using ArrayList (0) | 2020.05.24 |
[Algorithm] LeetCode 202.happy number using HashSet (0) | 2020.05.18 |
10989 수 정렬하기 3 (0) | 2020.05.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- react
- 이진탐색
- stackframe
- 클래스
- 운영체제
- Java
- Stack
- 알고리즘
- 구조체
- 소프트웨어
- 세마포어
- 자료구조
- 최단경로
- 재귀함수
- 교착상태
- 스텍
- javascript
- 퀵정렬
- 입출력장치
- client side rendering
- dfs
- C
- 인접행렬
- C++
- 배열
- server side rendering
- 동적프로그래밍
- BFS
- 인접리스트
- 병행프로세스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함