楽透の最高と最低ランキング
問題の意図.
2つの配列の典型的な問題を比較した.2つの文を接続して解くことができますが、hashを使用してO(n)問題を解決します.
トラブルシューティング
function solution(lottos, win_nums) {
const nonZeroLottos = lottos.filter((lotto) => lotto !== 0)
const win_numsObj = Object.fromEntries(win_nums.map((e) => [e, 0]))
const zeroNum = lottos.length - nonZeroLottos.length
const rankObj = {
6: 1,
5: 2,
4: 3,
3: 4,
2: 5,
1: 6,
0: 6,
}
nonZeroLottos.forEach((e) => {
if (win_numsObj[String(e)] === 0) win_numsObj[String(e)] = 1
})
// 0제외 맞힌 수
const firstSum = Object.entries(win_numsObj).reduce((acc, curr) => {
acc += curr[1]
return acc
}, 0)
const best = firstSum + zeroNum
const worst = firstSum
const answer = [rankObj[best], rankObj[worst]]
return answer
}
学ぶべきところ
O(n^2)が現れる場合,ハッシュデータ構造を考慮する必要がある.
Reference
この問題について(楽透の最高と最低ランキング), 我々は、より多くの情報をここで見つけました https://velog.io/@cramming/로또의-최고-순위와-최저-순위テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol