自然数配列を反転|プログラマ


問題に答える

自然水を逆さに並べます(Lv.1)


質問する


自然数nを逆さまにして、各数字を要素の配列で返します.例えば、nが12345の場合、[5,4,3,2,1]が返される.

せいげんじょうけん

  • nは10000000以下の自然数です.
  • I/O例


    nreturn12345[5,4,3,2,1]

    私の答え


    正しい解答

    function solution(num) {
      return (num + '').split('').reverse().map(e => parseInt(e));
    }
    
    console.log(solution(12345));
    // [5, 4, 3, 2, 1]
    console.log(solution(846984156));
    // [6, 5, 1, 4, 8, 9, 6, 4, 8]
    console.log(solution(684616846467248));
    // [8, 4, 2, 7, 6, 4, 6, 4, 8, 6, 1, 6, 4, 8, 6]
    ログの例は極端ですが、コードを書くときは極端な問題を考慮して構築すると聞きました.文字列を分離、反転、再マッピングして数字に再マッピングできる簡単な例ですが、問題をあまり読まずに勝手に書き、最後に7%の正解率でうろうろします.(+5点)

    誤った解釈

    function solution(num) {
      return (num + '').split('').sort().reverse().map(e => parseInt(e));
    }

    文字列をひっくり返して降順に並べさせなかった...
    function solution(num) {
      const result = (num + '').split('').sort().reverse().map(e => parseInt(e));
      const setResult = new Set(result);
      return [...setResult];
    }
    問題をよく読まず、重複した値を外すべきだと思い、セットにしても見ました.問題を読む能力が問題を解くのと同じくらい重要な瞬間であることを改めて意識する

    他人の解答

    function solution(n) {
    
      	// 숫자풀이
        var arr = [];
    
        do {
            arr.push(n%10);
            n = Math.floor(n/10);
        } while (n>0);
    
        return arr;
    }
    ?? ああ、このように解くこともできますね.
    12345 % 10 = 5
    1234 % 10 = 4
    123 % 10 = 3
    12 % = 2
    1 % = 1
    本当に奇抜で、いつか役に立つでしょう、キプピン.
    他の答えは私の答えと似ていますので、省略してください.