[アルゴリズム]プログラマー-n進ゲーム


https://programmers.co.kr/learn/courses/30/lessons/17687
問題の説明

救命圏活動のコードサークルでは、伝統的に遊ぶゲームがあります.このゲームはみんなが円に座って、順番に数字を言うゲームで、ルールは以下の通りです.
数字はゼロから順に言う.1人目は0、2人目は1、…10人目は9.
10以上の数字から、ひとつひとつ.つまり、11人目が10の1位、12人目が2位、つまり0です.
このようにゲームを行うと、0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, …順番に数字を言えばいいです.
一方、エンコーディングサークルのメンバーもパソコンを操作している人のようにバイナリ数でゲームをしている場合、0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, …順番に数字を言えばいいです.
バイナリでゲームをすることに慣れた人たちは、難易度を上げるために、バイナリから16進数までのすべての進数でゲームをすることにした.デジタルゲームに慣れていない救命圏は、ゲームに負けて罰せられる屈辱を避けるために、自分の言う数字を事前にスマートフォンに出力するプログラムを作るつもりだ.パイプ上のプログラムを実現します.
入力フォーマット

陣法nは、予め求めた数t、ゲームに参加する者m、パイプの順番pである.
2 ≦ n ≦ 16
0 < t ≦ 1000
2 ≦ m ≦ 100
1 ≦ p ≦ m
出力フォーマット

パイプが言う数字tを順番に表示するスペースのない文字列.しかし、10~15はそれぞれ大文字A~Fで出力される.
  • 解答方法
    -まずn進文字列を作成します.
    したがって、nが16の場合、0から1つずつ大きくなり、各値を16進数に変換して文字列に加算し、戻り値に基づいてt個の値を選択できるので、文字列の長さがt * mより大きい場合、while文の作成は終了する.
    toString(n)の方法をn進数変換で使用した.このメソッドの最初のパラメータに変換値の整数を加えると、n進数に変換された文字列が返されます.
    -上記の手順で生成された文字列から値を抽出します.
    この過程で、iの初期値はp-1で、1回転するたびに、iにmを加えて、1回転しますか?で行ないます.
  • function solution(n, t, m, p) {
        let curNum = 0;
        let totalStr="";
        let result = "";
        const totalRound = m*t;
        
        while(totalStr.length < totalRound){
            totalStr += curNum.toString(n)
            curNum++;
        }
        
        for(let i = p-1 ; i < totalRound; i += m){
            result += totalStr[i]
        }
        
        return result.toUpperCase();
    }