프로그래머스 배열 만들기 6 Lv.0

KUKJIN LEE's profile picture

KUKJIN LEE2일 전 작성

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`를 사용 할 수 있는지 확인하는 문제로 보입니다.

New Tech Posts