[PS]楽透の最高と最低(LV 1)


プログラマレベル1


楽透の最高と最低ランキング


楽透6/45(以下「楽透」と略称する)は典型的な宝くじで、1~45の数字に6つ印刷して推測することができる.次は宝くじのランキングを決める方法です.
ランキング当選内容
6個の番号がすべて一致
25個の番号が一致
34個の番号が一致
3つの番号が一致
5と2個の番号が一致
6(落尖)その他
宝くじを購入したミンウは、当選番号の発表日を楽しみにしていた.しかし、敏宇の弟は宝くじに落書きをして、番号の一部が分からなくなった.当選番号が発表された後、敏宇は自分が購入した宝くじの当選の最高順位と最低順位を知りたいと思っています.
購入した6つの宝くじ番号が44、1、0、0、3125だとします.6つの当選番号がそれぞれ31、10、45、1、6、19の場合、当選可能な最高および最低の例は以下の通りである.

パラメータは敏宇が購入した宝くじ番号を含む宝くじ、当選番号の宝くじである.このとき、可能な最高順位と最低順位を配列に順番に入れて戻ります.

に答える

function solution(lottos, win_nums) {
  // 맞춘횟수
  let count = 0;
  // 알아볼수 없는 숫자
  let zeroCount = 0;
  // 정답 (최고순위, 최저순위)
  let answer = [0, 0];

  // 구매한 로또를 돈다
  lottos.forEach((e) => {
    // 만약 해당숫자가 당첨된 숫자라면
    if (win_nums.includes(e)) {
      // 맞춘횟수를 추가시킨다.
      count++;
    }
    // 0이라면 알아볼수 없는숫자에 추가시킨다
    if (e === 0) {
      zeroCount++;
    }
  });
  // 최종적으로 최고순위는 로또 판별함수로 맞춘횟수와 0인 횟수를 더해서
  answer[0] = lotto(count + zeroCount);
  // 최저순위는 그냥 맞춘횟수만
  answer[1] = lotto(count);

  // 리턴
  return answer;
}

function lotto(nums) {
  if (nums === 6) {
    return 1;
  } else if (nums === 5) {
    return 2;
  } else if (nums === 4) {
    return 3;
  } else if (nums === 3) {
    return 4;
  } else if (nums === 2) {
    return 5;
  } else {
    return 6;
  }
}

の最後の部分


やさしい問題