[アルゴリズム]宝くじの最高と最低順位
1903 ワード
コトリンのシャベルの後記.⭐️
楽透6/45(以下「楽透」と略称する)は典型的な宝くじで、1~45の数字に6つ印刷して推測することができる.次は宝くじのランキングを決める方法です.
宝くじを購入したミンウは、当選番号の発表日を楽しみにしていた.しかし、敏宇の弟は宝くじに落書きをして、番号の一部が分からなくなった.当選番号が発表された後、敏宇は自分が購入した宝くじの当選の最高順位と最低順位を知りたいと思っています.
購入した6つの宝くじ番号が44、1、0、0、3125だとします.6つの当選番号がそれぞれ31、10、45、1、6、19の場合、当選可能な最高および最低の例は以下の通りである.
順序がであれ、購入した宝くじに当選番号に該当する番号があれば、正解と認定されます. では、2つの非表示の番号がそれぞれ10と6であると仮定すると、3位になります.
-他にも3位を作る方法があります.しかし、私たちはそれを2位以上にすることはできません. は、11と7の2つの知らない番号を持っていると仮定し、5位になります.
-他にも5位を作る方法があります.しかし、彼を6位にすることは不可能だ.
せいげんじょうけん lottosは整数配列で、長さは6です. lottosのすべての要素は45以下の整数です.
-0は認識できない数字を表します.
-0以外の数字はlottosで2つを超えない.
-lottosの要素が整列していない可能性があります. win numsは長さ6の整数配列である. win numsのすべての要素は45より大きい整数です.
-win numsには同じ数字が複数含まれていません.
-win numsの要素が整列していない可能性があります. パラメータは敏宇が購入した宝くじ番号を含む宝くじ、当選番号の宝くじである.このとき、可能な最高順位と最低順位を配列に順番に入れて戻ります.
1.答えの並び替えを最初に初期化します.
2.未知番号(0)が間違っていると仮定し、現在の既知番号で正しい番号を特定するだけで、最小の数字を求めることができる.
3.未知の番号がすべて正しいと仮定すると、現在の正しい番号+0の個数で最大の正しい番号を求めることができる.
4.一番つらいランキング方法.ifゲートで作った単純無知な方法しか思いつかなかったのですが、他人の解答を見てrankを配列に変えてインデックスで近づけました!天才的.🤦♀️)
すべてのエラー(0の場合)が発生した場合、ランキングは6になり、インデックス0の位置の値も6になります.上記で求めた最大/最小個数をrank[]のインデックスに変換し、それぞれ答え[0]、答え[1]の位置に挿入する.
問題の説明
楽透6/45(以下「楽透」と略称する)は典型的な宝くじで、1~45の数字に6つ印刷して推測することができる.次は宝くじのランキングを決める方法です.
宝くじを購入したミンウは、当選番号の発表日を楽しみにしていた.しかし、敏宇の弟は宝くじに落書きをして、番号の一部が分からなくなった.当選番号が発表された後、敏宇は自分が購入した宝くじの当選の最高順位と最低順位を知りたいと思っています.
購入した6つの宝くじ番号が44、1、0、0、3125だとします.6つの当選番号がそれぞれ31、10、45、1、6、19の場合、当選可能な最高および最低の例は以下の通りである.
順序が
-他にも3位を作る方法があります.しかし、私たちはそれを2位以上にすることはできません.
-他にも5位を作る方法があります.しかし、彼を6位にすることは不可能だ.
-0は認識できない数字を表します.
-0以外の数字はlottosで2つを超えない.
-lottosの要素が整列していない可能性があります.
-win numsには同じ数字が複数含まれていません.
-win numsの要素が整列していない可能性があります.
に答える
1.答えの並び替えを最初に初期化します.
2.未知番号(0)が間違っていると仮定し、現在の既知番号で正しい番号を特定するだけで、最小の数字を求めることができる.
3.未知の番号がすべて正しいと仮定すると、現在の正しい番号+0の個数で最大の正しい番号を求めることができる.
4.一番つらいランキング方法.ifゲートで作った単純無知な方法しか思いつかなかったのですが、他人の解答を見てrankを配列に変えてインデックスで近づけました!天才的.🤦♀️)
すべてのエラー(0の場合)が発生した場合、ランキングは6になり、インデックス0の位置の値も6になります.上記で求めた最大/最小個数をrank[]のインデックスに変換し、それぞれ答え[0]、答え[1]の位置に挿入する.
function solution(lottos, win_nums) {
let answer = new Array(2);
let rank = [6,6,5,4,3,2,1]
//최저 순위.
let minScore = lottos.filter(x=>win_nums.includes(x)).length
answer[1] = rank[minScore]
//최고 순위
let unknown = lottos.includes(0) ? lottos.filter(x=>0 === x).length : 0
let maxScore = unknown + minScore
answer[0] = rank[maxScore]
return answer;
}
Reference
この問題について([アルゴリズム]宝くじの最高と最低順位), 我々は、より多くの情報をここで見つけました https://velog.io/@chxxwn/알고리즘로또의-최고-순위와-최저-순위テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol