๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Javascript] ๋กœ๋˜์˜ ์ตœ๊ณ  ์ˆœ์œ„์™€ ์ตœ์ € ์ˆœ์œ„ (77484)

๋ฌธ์ œ๋งํฌ

 

์ ‘๊ทผ๋ฐฉ๋ฒ•

 

1. ์ฐ์€ ๋กœ๋˜ ๋ฒˆํ˜ธ๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ ๋‹น์ฒจ ๋ฒˆํ˜ธ์— ํฌํ•จ๋  ๊ฒฝ์šฐ ๋‹น์ฒจ๋ฒˆํ˜ธ์˜ ๊ฐœ์ˆ˜๋ฅผ ํŒŒ์•…ํ•œ๋‹ค.

 

2. 0์˜ ๊ฐœ์ˆ˜๊ฐ€ ๋ฌด์กฐ๊ฑด ๋‹น์ฒจ ๋ฒˆํ˜ธ ์ผ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฐ€์ •์ด๋ฏ€๋กœ 0์˜ ๊ฐœ์ˆ˜๋„ ๋ช‡๊ฐœ์ธ์ง€ ํŒŒ์•…ํ•œ๋‹ค. 

 

3. ์ˆœ์œ„์™€ ๋‹น์ฒจ ๋‚ด์šฉ์„ ๋ณด๋ฉด 0๊ฐœ์ผ์น˜ ์ด์™ธ์—๋Š” ์ˆœ์œ„์™€ ์ผ์น˜๋ฒˆํ˜ธ์˜ ํ•ฉ์ด 7์ด๋‹ค. ๋”ฐ๋ผ์„œ 7-๋‹น์ฒจ๋ฒˆํ˜ธ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ˆœ์œ„์ด๋‹ค.

(1, 0๊ฐœ ์ผ์น˜๋Š” ๋”ฐ๋กœ ์ฒ˜๋ฆฌ) 

 

4. 0์˜ ๊ฐœ์ˆ˜๋Š” ๋‹น์ฒจ์ด๋ผ ๊ฐ€์ •ํ•˜๋ฉด ์ตœ๋Œ€ ์ผ์น˜์ˆ˜๋Š” 7- correntNumCount + zeros์ด๋‹ค.

์ด๋•Œ low = 7 - correntNumCount ์ด๋ฏ€๋กœ low - zeros๊ฐ€ ์ตœ๋Œ€ ์ˆœ์œ„์ด๋‹ค.

 

function solution(lottos, win_nums) {
    var answer = [];
    let correctNumCount = 0;
    let zeros = 0;
    
    lottos.map((num) => win_nums.includes(num) ? correctNumCount += 1 : correctNumCount)
    lottos.map((num) => (num === 0) && (zeros += 1))
    
    const low = 7-correctNumCount <= 5 ? 7-correctNumCount : 6;
    const high = low-zeros <= 1 ? 1 : low-zeros;
    
    answer = [high, low];
    
    
    return answer;
}

 

๋‹ค์‹œ ํ’€์–ด๋ณธ ํ’€์ด( ๋” ์ง๊ด€์ ์ด๊ณ  for๋ฌธ์„ ํ•œ๋ฒˆ ์ค„์˜€๋‹ค. )

 

function solution(lottos, win_nums) {
    var answer = []
    let minSameCnt = 0;
    let maxSameCnt = 0;

    lottos.forEach(e => {
      if(win_nums.includes(e)){
        minSameCnt++;
      };
      if(win_nums.includes(e) || e===0){
        maxSameCnt++;
      }
    })
    
    topRank = (7 - maxSameCnt === 7) ? 6 : 7-maxSameCnt; 
    lowRank = (7 - minSameCnt === 7) ? 6 : 7-minSameCnt;
    
    answer = [topRank, lowRank]
    
    return answer;
}