정수가 담긴 배열 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));
}