58.プログラマ(フェーズ2)-最大数


📌 問題の条件


0または正の整数を指定すると、最大の整数を見つけます.
例えば、与えられた整数が[6,10,2]である場合、最大数が6210である[610261010621026102106]を作成することができる.
パラメータに指定された配列番号が0または正の整数の場合、作成可能な最大番号を文字列に変換して戻すソリューション関数を作成します.

せいげんじょうけん🤔

  • numbersの長さは100000より大きい.
  • numbersの要素は1000を超えません.
  • 答えが大きすぎるかもしれませんが、文字列を変えて返してください.
  • 📌 に答える


    に答える👨‍💻

    function solution(numbers) {
      numbers = numbers
        .map((e) => String(e))
        .sort((a, b) => (b + a) - (a + b))
        .join("");
      return !Number(numbers) ? "0" : numbers;
    }

    📌 コメント


    数字を文字に変えて貼り付け、降順に並べます.
    そして配列グループを文字列に合成し、最後の箱が通らなかったのは、0しかないことに気づかなかったからだった.
    因子配列numbers[0,0,0]であれば、'0'を返すべきであるが、実際には'000'である.
    だから私は彼にチャンスを与えて、彼は通過しました.

    📌 問題のソース


    出典:プログラマーコードテスト練習、
    https://programmers.co.kr/learn/challenges#