Programmers-最大数


💻 大数


に質問


https://programmers.co.kr/learn/courses/30/lessons/42746

勘定科目

function solution(numbers) {
    var answer = numbers.map((number) => number.toString()).sort((a, b) => (b + a) - (a + b)).join("");
    return answer.replace(/^0+/, "0");
}
var numbers = [3, 30, 34, 5, 9];
console.log(solution(numbers));

¥¥АААААААААА


最初はソート問題かと思って、最大の値を順番に解いていましたが、タイムアウトしました.
これは単純な問題です.
並べ替えを開始すると、2つの文字が前後に結合され、より大きな文字が戻って並べ替えられます.文字を自動的に結合すると、最大の数字が表示されます.そしてその数字をjoin関数に加算します.
最後に、答えが一番前の文字が0であれば、一番大きい数字は0で、後ろの文字は0000...です.そのため、この場合は通常の儀式を0に変更する.

学識

  • 正規式:^a+/:一番前の文字が「a」で始まるすべての文字列
  • 문자.replace(정규식, 대체할 문자열):문자정규식対応するパターンは대체할 문자열で代用.