“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
2차원으로 만들기
문제설명
정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요.
num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다.
제한사항
- num_list의 길이는 n의 배 수개입니다.
- 0 ≤ num_list의 길이 ≤ 150
- 2 ≤ n < num_list의 길이
입출력 예
num_list | n | result |
[1,2,3,4,5,6,7,8] | 2 | [[1,2], [3,4], [5,6], [7,8]] |
[100,95,2,4,5,6,18,33,948] | 3 | [[100, 95, 2], [4,5,6], [18,33,948]] |
입출력 예 설명
- num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 2 * 4 배열로 변경한 [[1, 2], [3, 4], [5, 6], [7, 8]] 을 return합니다.
- num_list가 [100, 95, 2, 4, 5, 6, 18, 33, 948] 로 길이가 9이고 n이 3이므로 3 * 3 배열로 변경한 [[100, 95, 2], [4, 5, 6], [18, 33, 948]] 을 return합니다.
출력
function solution(num_list, n) {
var answer = [];
for(var i=0; i<num_list.length; i+=n){
answer.push(num_list.slice(i, i+n));
}
return answer;
}
num_list 라는 정수 배열과 n이라는 정수가 주어지고, num_list 를 앞에서부터 n개식 자른 후 2차원 배열로 변환하여 반환하는 문제입니다.
num_list 가 [1,2,3,4,5,6,7,8]이고 n이 2인 경우, num_list 를 2개씩 잘라서 2차원 배열로 변환해야 합니다.
이때 [1,2], [3,4], [5,6], [7,8]로 잘라진 요소들을 2차원 배열로 묶으면 [[1,2], [3,4], [5,6], [7,8]]가 됩니다.
주어진 solution함수는 num_list 를 앞에서부터 n개씩 자르고, 그 결과를 2차원 배열인 answer에 저장한 후 반환합니다.
반복문을 사용해 num_list 를 n개씩 자르고, slice 메서드를 이용해 잘린 요소들을 2차원 배열로 변환해 answer에 추가합니다.
배열회전시키기
문제설명
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 3 ≤ numbers의 길이 ≤ 20
- direction은 "left" 와 "right" 둘 중 하나입니다.
입출력예
numbers | direction | result |
[1,2,3] | "rigtht" | [3,1,2] |
[4,455,6,4,-1,45,6] | "left" | [455, 6, 4, -1, 45, 6,4] |
입출력예설명
- numbers 가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.
- numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.
출력
function solution(numbers, direction) {
let answer = [];
if (direction === "left") {
answer = numbers.slice(1).concat(numbers[0]);
} else if (direction === "right") {
answer = [numbers[numbers.length - 1]].concat(numbers.slice(0, numbers.length - 1));
}
return answer;
}
solution함수는 numbers배열과 direction 문자열을 매개변수로 받고 빈 배열인 answer 를 선언합니다.
direction 이 left인 경우
numbers 배열에서 첫 번째 요소를 제외한 나머지 요소들을 선택하고, 그 뒤에 첫번째 요소를 추가하여 새로운 배열을 만듭니다. 이를 answer에 할당합니다.
direction 이 right 인 경우
numbers 배열에서 마지막 요소를 선택하고, 그 앞에 나머지 요소들을 선택해 새로운 배열을 만듭니다. 그리고 그 앞에 선택한 마지막 요소를 추가해 새로운 배열을 만듭니다. 이를 answer에 할당합니다.