본문 바로가기

javaScript

[JS] 배열(array)의 요소 조작 문제 풀어보기

배열의 요소를 가지고 문제를 풀어 봅니다

 

문제)

divideArrayInHalf 함수를 다음과 같이 구현해주세요

  • divideArrayInHalf 함수는 array를 인자로 받습니다. 이 array는 숫자 값으로 만 구성되어 있으며 총 5개의 요소(element)들로 구성되어 있습니다.
  • divideArrayInHalf 함수는 인자로 들어온 array로부터 새롭게 구성된 배열 result을 리턴합니다.
  • array 요소들 중 10과 같거나 작은 값의 요소들은 result의 맨 앞으로, 10보다 큰 값의 요소들은 result의 맨 뒤로 재구성된 배열을 리턴해주세요.
  • 재구성이 되는 순서는 array의 맨 뒤 요소부터 맨 앞 요소까지 입니다. 즉, 배열의 뒷 요소부터 재구성을 진행해주세요.
  • 예를 들어, 인자로 들어오는 array가 다음과 같을 때,
[1, 20, 10, 5, 100]

 

result 배열이 만들어지는 순서는 다음과 같습니다.

  • [100]
  • [5, 100]
  • [10, 5, 100]
  • [10, 5, 100, 20]
  • [1, 10, 5, 100, 20]

따라서 아래와 같은 result가 리턴되어야 합니다.

[1, 10, 5, 100, 20]

문제)

function divideArrayInHalf(array) {
    let result = [];
  // 코드 작성~
  return result;
}

 

풀이)

function divideArrayInHalf(array) {
    let result = []; // 1
    for (let i = 0; i < array.length; i++) { // 2
      const c = array.pop(); // 3
      if (c <= 10) { // 4
       result.unshift(c); // 5
     } else {
       result.push(c); // 6
     }
    }
  return result;
}
divideArrayInHalf([1, 20, 10, 5, 100]);

1. result에 빈 배열(array)을 만들어 줍니다

2. for문을 사용합니다 for문의 괄호 안에는 (초기식, 조건식, 증감식)이 들어갑니다

3. for (i = 0;으로 초기화, array배열의 요소 길이보다 i가 작다면 배열의 길이 요소만큼 i를 1씩 더해줍니다)

4. 저는 배열의 pop(); 메서드를 사용하겠습니다 pop()은 배열의 가장 마지막 요소를 빼면서 그 값을 반환합니다

5. if문을 통해 조건식을 주어 만약 pop()으로 반환된 배열의 마지막 요소가 10보다 작거나 같다면 result빈 배열의 unshift(c)

앞으로 붙이기

6. 아니면 result라는 빈배열의 push(c) 제일 뒤에 붙이기입니다