문제풀이 : Array Control

강지원·2021년 10월 10일
0
post-thumbnail

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]

1. 최종 코드

function divideArrayInHalf(array) {
let result = [];
for(let i = array.length; i >=0; i--) {
if(array[i] > 10) {
result.push(array[i]);
} else if(array[i] <= 10) {
result.unshift(array[i]);
}
}
return result;
}

2. 풀이 과정

언제나 그렇듯이 풀어볼 순서를 글로 적어봤다.

  1. 새롭게 구성된 배열 result를 리턴해야 하니
    함수의 처음에 const result = [];를 작성하고
    함수의 끝에 return result를 작성.

    주어진 배열을 수색해야 하니 for문으로
    배열 요소 하나씩 수색해준다.

for(i=0; i<array.length; i++)

  1. 10과 같거나 작으면 배열의 맨앞으로,
    10보다 크면 배열의 맨 뒤로 구성을 이뤄야 하니
    if문을 써줘서 조건을 넣어주고, 조건에 맞다면
    데이터를 앞에 넣어주는 unshift와
    push를 사용해 앞뒤로 넣어주면 되겠다.

if(a[i] <= 10){
result.unshift(a[i]);
} else if(a[i] > 10) {
result.push(a[i]);
}

  1. 배열의 뒷 요소부터 재구성을 진행하라니
    이걸 for문과 콜라보해주면 되겠다.

기존 for문 : for(i = 0; i < 범위; i++)
이번 for문 : for(i = array.length; i >= 0; i--)

  1. 코드들을 합 - 체
function divideArrayInHalf(array) {
const result = [];
for(i=array.length; i >= 0; i--){
if(a[i] <= 10){
result.unshift(a[i]);
} else if(a[i] > 10) {
result.push(a[i]);
}
return result;
}
profile
'Why' better than 'Yes'

0개의 댓글

관련 채용 정보