문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
핵심 아이디어
- 입력 배열을 순차적으로 탐색: i를 사용해 배열을 처음부터 끝까지 순회.
- 중복 제거: 현재 값과 스택의 마지막 값을 비교해, 중복이 아닐 때만 스택에 추가.
- 스택 사용: 중복되지 않은 값을 stack.push()로 스택에 쌓고, 조건에 따라 추가하지 않음.
- 최종 결과 반환: 중복된 값들이 제거된 stack을 반환.
정답
function solution(arr) {
let stack = [];
let i = 0;
while (i < arr.length) {
const current = arr[i];
if (stack[stack.length - 1] !== current) {
stack.push(current);
}
i++;
}
return stack;
}