javaScript
[JS] 배열(array)의 요소 조작 문제 풀어보기
Dev_jihoon8730
2022. 5. 28. 17:55
배열의 요소를 가지고 문제를 풀어 봅니다
문제)
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) 제일 뒤에 붙이기입니다