Leetcode Java Validate Stack Sequences
업데이트:
문제
코드
class Solution {
public boolean validateStackSequences(int[] pushed, int[] popped) {
Stack<Integer> stack = new Stack<>();
int i = 0;
for (int value : pushed) {
stack.push(value);
while (!stack.isEmpty() && stack.peek() == popped[i]) {
stack.pop();
i++;
}
}
return stack.isEmpty();
}
}
결과
설명
-
초기화된 스택에서 순차적으로 pushed의 값을 넣고 popped의 값을 꺼낼 수 있는지 검증하는 문제이다.
- 문제 풀이에 필요한 변수를 정의한다.
- stack은 검증에 필요한 변수로, Stack으로 초기화한다.
- i는 popped의 위치 변수로, 0으로 초기화한다.
- pushed의 모든 값을 value에 순차적으로 넣고 아래를 수행한다.
- stack에 value를 넣어준다.
- stack이 비어있지 않으면서 stack에서 꺼낸 값이 popped의 i번째 값과 동일할 때까지 반복하여, stack에서 값을 꺼내 제거하고 i를 증가시켜 다음 위치로 이동시킨다.
- 반복이 완료되면 stack이 비어있는지 검증된 결과를 주어진 문제의 결과로 반환한다.
소스
Sample Code는 여기에서 확인 가능합니다.
댓글남기기