bootcamp test1

문제 설명

자연수가 들어있는 배열 arr가 매개변수로 주어집니다. 배열 arr안의 숫자들 중에서 앞에 있는 숫자들부터 뒤에 중복되어 나타나는 숫자들 중복 횟수를 계산해서 배열로 반환하도록 solution 함수를 완성해주세요. 만약 중복되는 숫자가 없다면 배열에 -1을 채워서 반환하세요.


제한 조건

  • 배열 arr의 길이는 1 이상 100 이하의 자연수입니다.
  • 배열 arr의 원소는 1 이상 100 이하의 자연수입니다.

입출력 예

  • arr = [1, 2, 3, 3, 3, 4, 4]에서 3은 3번, 4는 2번씩 나타나므로 [3, 2]를 반환합니다.
  • arr = [3, 2, 4, 4, 2, 5, 2, 5, 5]이면 2가 3회, 4가 2회, 5가 3회 나타나므로 [3, 2, 3]를 반환합니다.
  • [3, 5, 7, 9, 1]에서 중복해서 나타나는 숫자는 없으므로 [-1]을 반환합니다.



풀이

function solution(arr) {
  arr.sort((a, b) => a - b);
  let count = 1;
  let result = [];
  arr.forEach((element, idx) => {
    if (element === arr[idx + 1]) {
      count++;
    } else if (count !== 1) {
      result.push(count);
      count = 1;
    } 
  });

  if (!result.length) result.push(-1);

  return result;
}

const arr = [1,1,2,3,3,4,4,4];

console.log(solution(arr)); // [ 2, 2, 3 ]

Written by@[Ju Chan Hwang]
JUlog에 오신걸 환영합니다🤗 저에 대해 궁금하다면, 👆제 이름을 눌러보세요

GitHubFacebook