정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
direction 이 right 일 때와 left 일때로 분기하여 answer이라는 빈배열에 값을 넣어주었다.
다른 사람 풀이를 보았는데 unshift
, shift
, pop
을 이용하여 반복문을 사용하지 않은 간단한 풀이 방법이 있어서 같이 올려본다.
function solution(numbers, direction) {
let answer = [];
if (direction === "right") {
answer.push(numbers[numbers.length - 1]);
for (let i = 0; i < numbers.length - 1; i++) {
answer.push(numbers[i]);
}
} else {
for (let i = 1; i < numbers.length; i++) {
answer.push(numbers[i]);
}
answer.push(numbers[0]);
}
return answer;
}
function solution(numbers, direction) {
var answer = [];
if ("right" == direction) {
numbers.unshift(numbers.pop());
} else {
numbers.push(numbers.shift());
}
answer = numbers;
return answer;
}
머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요.
numbers = [1,2,3,4], k = 2 일 때
k가 증가 할 때마다 index를 2씩 증가시킨다.
index가 number의 길이보다 길어지면 number의 길이만큼 빼서 index가 number배열을 초과하지 않게 한다.
function solution(numbers, k) {
let index = 0;
for (let i = 0; i < k; i++) {
index += 2;
if (index > numbers.length) {
index -= numbers.length;
}
}
return numbers[index - 2];
}
2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요.
x 좌표 중 가장 큰 값에서 가장 작은 x값을 뺀 값을 width로,
y 좌표 중 가장 큰 값에서 가장 작은 y값을 뺀 값을 height로 할당 후 두 값을 곱해주었다.
function solution(dots) {
const width = dots.map((n) => n[0]);
const height = dots.map((n) => n[1]);
return (
(Math.max(...width) - Math.min(...width)) *
(Math.max(...height) - Math.min(...height))
);
}
머쓱이는 친구에게 모스부호를 이용한 편지를 받았습니다. 그냥은 읽을 수 없어 이를 해독하는 프로그램을 만들려고 합니다. 문자열 letter가 매개변수로 주어질 때, letter를 영어 소문자로 바꾼 문자열을 return 하도록 solution 함수를 완성해보세요.
function solution(letter) {
let morse = {
".-": "a",
"-...": "b",
"-.-.": "c",
"-..": "d",
".": "e",
"..-.": "f",
"--.": "g",
"....": "h",
"..": "i",
".---": "j",
"-.-": "k",
".-..": "l",
"--": "m",
"-.": "n",
"---": "o",
".--.": "p",
"--.-": "q",
".-.": "r",
"...": "s",
"-": "t",
"..-": "u",
"...-": "v",
".--": "w",
"-..-": "x",
"-.--": "y",
"--..": "z",
};
let letterArr = letter.split(" ");
let answer = "";
letterArr.map((el) => (answer += morse[el]));
return answer;
}
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
function solution(my_string) {
return [...my_string]
.filter((el) => !isNaN(el))
.map((el) => Number(el))
.sort();
}
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
function solution(my_string) {
return [...my_string]
.filter((el) => !isNaN(el))
.reduce((a, b) => Number(a) + Number(b));
}