Jieunny์˜ ๋ธ”๋กœ๊ทธ

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„ ๋ณธ๋ฌธ

Study/Coding Test

[JS] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„

Jieunny 2023. 1. 27. 12:46

๐Ÿ“Œ ๋ฌธ์ œ

๋กœ๋˜ 6/45(์ดํ•˜ '๋กœ๋˜'๋กœ ํ‘œ๊ธฐ)๋Š” 1๋ถ€ํ„ฐ 45๊นŒ์ง€์˜ ์ˆซ์ž ์ค‘ 6๊ฐœ๋ฅผ ์ฐ์–ด์„œ ๋งžํžˆ๋Š” ๋Œ€ํ‘œ์ ์ธ ๋ณต๊ถŒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๋กœ๋˜์˜ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. 

์ˆœ์œ„๋‹น์ฒจ ๋‚ด์šฉ

1 6๊ฐœ ๋ฒˆํ˜ธ๊ฐ€ ๋ชจ๋‘ ์ผ์น˜
2 5๊ฐœ ๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜
3 4๊ฐœ ๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜
4 3๊ฐœ ๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜
5 2๊ฐœ ๋ฒˆํ˜ธ๊ฐ€ ์ผ์น˜
6(๋‚™์ฒจ) ๊ทธ ์™ธ

๋กœ๋˜๋ฅผ ๊ตฌ๋งคํ•œ ๋ฏผ์šฐ๋Š” ๋‹น์ฒจ ๋ฒˆํ˜ธ ๋ฐœํ‘œ์ผ์„ ํ•™์ˆ˜๊ณ ๋Œ€ํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋ฏผ์šฐ์˜ ๋™์ƒ์ด ๋กœ๋˜์— ๋‚™์„œ๋ฅผ ํ•˜์—ฌ, ์ผ๋ถ€ ๋ฒˆํ˜ธ๋ฅผ ์•Œ์•„๋ณผ ์ˆ˜ ์—†๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‹น์ฒจ ๋ฒˆํ˜ธ ๋ฐœํ‘œ ํ›„, ๋ฏผ์šฐ๋Š” ์ž์‹ ์ด ๊ตฌ๋งคํ–ˆ๋˜ ๋กœ๋˜๋กœ ๋‹น์ฒจ์ด ๊ฐ€๋Šฅํ–ˆ๋˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„๋ฅผ ์•Œ์•„๋ณด๊ณ  ์‹ถ์–ด ์กŒ์Šต๋‹ˆ๋‹ค.
์•Œ์•„๋ณผ ์ˆ˜ ์—†๋Š” ๋ฒˆํ˜ธ๋ฅผ 0์œผ๋กœ ํ‘œ๊ธฐํ•˜๊ธฐ๋กœ ํ•˜๊ณ , ๋ฏผ์šฐ๊ฐ€ ๊ตฌ๋งคํ•œ ๋กœ๋˜ ๋ฒˆํ˜ธ 6๊ฐœ๊ฐ€ 44, 1, 0, 0, 31 25๋ผ๊ณ  ๊ฐ€์ •ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹น์ฒจ ๋ฒˆํ˜ธ 6๊ฐœ๊ฐ€ 31, 10, 45, 1, 6, 19๋ผ๋ฉด, ๋‹น์ฒจ ๊ฐ€๋Šฅํ•œ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„์˜ ํ•œ ์˜ˆ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

๐Ÿ’ก ์•„์ด๋””์–ด

์ผ๋‹จ lottos, win_number ๋Œ๋ฉด์„œ ๊ฐ™์€ ๋ฒˆํ˜ธ ์ฐพ์•„์ฃผ๊ธฐ

0์œผ๋กœ ํ‘œ๊ธฐํ•œ ๋ฒˆํ˜ธ ๊ฐœ์ˆ˜ ๊ตฌํ•ด์ฃผ๊ธฐ

์ตœ์†Œ : 0์œผ๋กœ ์จ์ง„ ๊ฒŒ ๋‹ค ์•ˆ ๋งž์„ ๋•Œ

์ตœ๋Œ€ : 0์œผ๋กœ ์จ์ง„ ๊ฒŒ ๋‹ค ๋งž์„ ๋•Œ

์ˆœ์œ„ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ€๋Š” ๊ฒฝ์šฐ๋„ ์ƒ๊ฐ

 

โœ๏ธ ํ’€์ด

function solution(lottos, win_nums) {
  var answer = [];
  let sameCount = 0;	// ๊ฐ™์€ ๋ฒˆํ˜ธ ๊ฐœ์ˆ˜
  let zeroCount = 0;	// 0 ๊ฐœ์ˆ˜
  let rank = [0, 6, 5, 4, 3, 2];	// ์ธ๋ฑ์Šค๊ฐ€ ๋“ฑ์ˆ˜๋ฅผ ์˜๋ฏธ, ๋“ฑ์ˆ˜์— ๋งž๋Š” ์ •๋‹ต ๊ฐœ์ˆ˜ ํ• ๋‹น
  let allZeroSame = 0;	// 0์œผ๋กœ ์จ์ง„ ๊ฒŒ ๋‹ค ๋งž์•˜์„ ๊ฒฝ์šฐ ์ •๋‹ต ๊ฐœ์ˆ˜
  let min = 0;	// ์ตœ์†Œ ์ˆœ์œ„
  let max = 0;	// ์ตœ๋Œ€ ์ˆœ์œ„

  for(let i=0; i<lottos.length; i++){
    if(lottos[i] === 0){
      zeroCount++;
    }
    for(let j=0; j<win_nums.length; j++){
      if(lottos[i] === win_nums[j]){
        sameCount++;
      }
    }
  }

  allZeroSame = zeroCount + sameCount;

  let rankIn = false;	// ์ˆœ์œ„ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ”์„ ๋•Œ๋ฅผ ์œ„ํ•œ ๋ณ€์ˆ˜

  for(let i=1; i<rank.length; i++){
    if(sameCount < 2){
      min = 6;	//์ˆœ์œ„ ๋ฐ–์œผ๋กœ ๋‚˜๊ฐ”์„ ๋•Œ min
    }

    if(sameCount === rank[i]){
      min = i;
    }

    if(allZeroSame === rank[i]){
      rankIn = true;
      max = i;
    }
  }
  if(rankIn === false){
    max = 6;
  }

  answer.push(max);
  answer.push(min);
  return answer;
}