프로그래머스 배열 만들기 6 Lv.0
KUKJIN LEE • 2일 전 작성
function solution(arr) {
const result = [];
for (const num of arr) {
// 스택이 비어있지 않고, 마지막 원소가 현재 값과 같다면 pop
if (result.length > 0 && result[result.length - 1] === num) {
result.pop();
} else {
// 비어있거나, 마지막 원소와 다르면 push
result.push(num);
}
}
// 결과가 비어있다면 [-1] 반환
return result.length > 0 ? result : [-1];
}
for (const num of arr)
: 배열의 각 요소를 하나씩num
에 넣어 순회합니다.result.length > 0 && result[result.length - 1] === num
: 문제 요구 사항에 따라 스택이 비어있지 않고, 스택의 마지막 값이 새 값num
과 같으면 중복이므로 마지막 원소 제거(pop
).- 그 외의 경우: 스택에 새로운 값을 추가(
push
). - 반복이 끝나고 스택이 비어있다면, 문제의 요구사항대로
[-1]
을 반환합니다.
배열의 `pop`과 `push`를 사용 할 수 있는지 확인하는 문제로 보입니다.