긴급 할 일을 맨 앞에 추가하기

자바스크립트 코딩테스트 문제로 array-mutation-methods 주제를 연습해보세요. 난이도는 easy이며, 브라우저에서 바로 JavaScript로 풀이를 실행할 수 있습니다.

js-basic easy array-mutation-methods 함수명: addUrgentTaskFirst 제한 시간: 200ms

할 일 목록 배열 tasks와 긴급 할 일 urgentTask가 주어질 때, 긴급 할 일을 목록의 맨 앞에 추가한 새 배열을 반환하는 addUrgentTaskFirst 함수를 작성하세요.

오늘의 메서드

  • 오늘 배울 메서드는 Array.unshift()입니다.
  • 배열의 맨 앞에 하나 이상의 값을 추가할 때 사용합니다.

메서드 설명

unshift()는 배열의 시작 부분에 값을 추가합니다. 기존 요소들은 뒤쪽으로 한 칸씩 밀립니다.

이 문제에서는 기존 할 일 목록의 순서를 유지하면서, 새 긴급 할 일만 가장 앞에 놓아야 합니다.

기본 문법

arr.unshift(value)
arr.unshift(value1, value2)

사용 예시

const tasks = ["메일 확인", "회의 준비"];

tasks.unshift("장애 대응");

console.log(tasks); // ["장애 대응", "메일 확인", "회의 준비"]

주의할 점

  • unshift()는 원본 배열을 직접 변경합니다.
  • unshift()의 반환값은 변경된 배열이 아니라 배열의 새 길이입니다.
  • 이 문제에서는 입력 배열 tasks를 바로 바꾸지 않도록 먼저 slice()로 복사한 뒤 사용합니다.

제한사항

  • tasks의 길이는 0 이상 100 이하입니다.
  • tasks의 각 원소는 길이 1 이상 30 이하인 문자열입니다.
  • urgentTask는 길이 1 이상 30 이하인 문자열입니다.
  • 반환값은 urgentTask가 맨 앞에 추가된 새 배열입니다.
  • 기존 tasks 안의 할 일 순서는 그대로 유지해야 합니다.

예시

  • 입력: tasks = ["메일 확인", "회의 준비"], urgentTask = "장애 대응" → 출력: ["장애 대응", "메일 확인", "회의 준비"]
  • 입력: tasks = [], urgentTask = "첫 할 일" → 출력: ["첫 할 일"]
  • 입력: tasks = ["리뷰"], urgentTask = "긴급 공지" → 출력: ["긴급 공지", "리뷰"]

힌트

  • 먼저 tasks.slice()로 새 배열을 만들어 보세요.
  • 그 새 배열의 맨 앞에 urgentTask를 추가하면 됩니다.
  • unshift()를 호출한 뒤에는 메서드의 반환값이 아니라 배열 변수 자체를 반환해야 합니다.

해설

이 문제의 핵심은 배열 맨 앞에 값을 넣는 방법을 익히는 것입니다.

push()가 배열의 뒤에 값을 추가한다면, unshift()는 배열의 앞에 값을 추가합니다. 예를 들어 ["메일 확인", "회의 준비"]"장애 대응"unshift()하면 결과 배열은 ["장애 대응", "메일 확인", "회의 준비"]가 됩니다.

다만 unshift()는 원본 배열을 직접 바꾸는 메서드입니다. 문제에서는 입력으로 받은 tasks를 그대로 바꾸기보다 새 배열을 만들어 반환하는 편이 더 안전합니다. 그래서 starter code처럼 const result = tasks.slice();로 복사본을 만든 뒤, result.unshift(urgentTask);를 실행하면 됩니다.

또 하나 주의할 점은 반환값입니다. result.unshift(urgentTask)의 결과는 배열이 아니라 새 길이입니다. 따라서 아래처럼 작성해야 합니다.

function addUrgentTaskFirst(tasks, urgentTask) {
  const result = tasks.slice();
  result.unshift(urgentTask);
  return result;
}

배열이 비어 있어도 같은 방식으로 동작합니다. 빈 배열에 값을 unshift()하면 그 값 하나만 들어 있는 배열이 됩니다.

코드 작성

starter code를 바탕으로 함수를 완성한 뒤 예제 테스트를 실행해보세요.

JavaScript 에디터 로딩 중...

커스텀 테스트

함수 인자를 JSON 배열 형태로 입력하세요. 예: [3, 5], [[1, 2, 3]]

아직 실행하지 않았습니다.

실행 결과

아직 실행하지 않았습니다.

예제 테스트를 실행하면 여기에서 결과를 확인할 수 있습니다.

댓글

문제 풀이 아이디어, 질문, 반례를 자유롭게 나눠보세요.