[プログラマ]分割された数値配列


質問する


ソース:プログラマコードテスト練習、数値配列の区切り
https://programmers.co.kr/learn/courses/30/lessons/12910

問題の説明


arrayの各要素で、昇順で配列された配列の係数で区切られた値を返す関数を作成します.
要素が除数で区切られていない場合は、配列に-1を入れて返します.

せいげんじょうけん

  • arrは自然数を含む配列である.
  • 整数i,jについて、i≠jの場合、arr[i]≠arr[j]である.
  • 除数は自然数です.
  • arrayは、長さが1より大きい配列である.
  • I/O例


    arrdivisorreturn[5, 9, 7, 10]5[5, 10][2, 36, 1, 3]1[1, 2, 3, 36][3,2,6]10[-1]

    I/O例説明


    I/O例#1
    arrの5つの要素のうち5つは5と10です.したがって、[5,10]を返します.
    I/O例#2
    arrのすべての要素は1で区切られています.元素を昇順に並べて[1,2,3,36]を返します.
    I/O例#3
    3、2、6は10に分けられない.[1]を返します.分離された要素がないためです.

    コード#コード#

    function solution(arr, divisor) {
        var answer = arr.filter(el=>el%divisor===0);
        return answer.length ? answer.sort((a,b)=>a-b) : [-1];
    }

    に答える

  • フィルタリング方法は、除数で区切られた要素
  • のみを残す.
  • の要素-1が分離されていない場合、昇順で
  • が戻る.