Programing/Programers
[JAVA] 스택 : 같은 숫자는 싫어
블스뜸
2025. 4. 14. 17:14
1. 문제 내용

요약 : 배열의 데이터가 연속적으로 나온다면 그 데이터를 하나로 줄이자
2. 내가 생각한 문제 접근방법
Stack의 최상위의 데이터와 비교하며 계속 push하면 간단하게 풀릴 것 같은 문제로 생각된다
[1,1,3,3]을 예를 들면
스택이 비어있으니 1push
겹치니 pass
최상위 와 다르니 3push
겹치니 pass
이 과정을 거치면 될 것 같다
3. 실제 구현 과정
일단 스택 변수를 선언하고
Stack<Integer> stack = new Stack<>();
들어온 값을 비교하여 stack에 push하고 stack을 반환
for (Integer value : arr) {
if (stack.isEmpty()) stack.push(value);
else if (!stack.peek().equals(value)) stack.push(value);
}
return stack;
4. 결과
생각대로 문제가 풀렸다
전체코드
import java.util.*;
public class Solution {
public Stack<Integer> solution(int[] arr) {
Stack<Integer> stack = new Stack<>();
for (Integer value : arr) {
if (stack.isEmpty()) {
stack.push(value);
} else if (!stack.peek().equals(value)) {
stack.push(value);
}
}
return stack;
}
}