๐ŸŒ  ๋ฌธ์ œ

์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์ƒ๋“ค์˜ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ธฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜๋ฅผ ๋‹ด์€ 2์ฐจ์› ์ •์ˆ˜ ๋ฐฐ์—ด score๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ์˜์–ด ์ ์ˆ˜์™€ ์ˆ˜ํ•™ ์ ์ˆ˜์˜ ํ‰๊ท ์„ ๊ธฐ์ค€์œผ๋กœ ๋งค๊ธด ๋“ฑ์ˆ˜๋ฅผ ๋‹ด์€ ๋ฐฐ์—ด์„ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๐ŸŒ  ์ œํ•œ์‚ฌํ•ญ

  • 0 ≤ score[0], score[1] ≤ 100
  • 1 ≤ score์˜ ๊ธธ์ด ≤ 10
  • score์˜ ์›์†Œ ๊ธธ์ด๋Š” 2์ž…๋‹ˆ๋‹ค.
  • score๋Š” ์ค‘๋ณต๋œ ์›์†Œ๋ฅผ ๊ฐ–์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ

score result
[[80, 70], [90, 50], [40, 70], [50, 80]] [1, 2, 4, 3]
[[80, 70], [70, 80], [30, 50], [90, 100], [100, 90], [100, 100], [10, 30]] [4, 4, 6, 2, 2, 1, 7]

๐ŸŒ  ์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 70, 55, 65 ์ด๋ฏ€๋กœ ๋“ฑ์ˆ˜๋ฅผ ๋งค๊ฒจ [1, 2, 4, 3]์„ returnํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ํ‰๊ท ์€ ๊ฐ๊ฐ 75, 75, 40, 95, 95, 100, 20 ์ด๋ฏ€๋กœ [4, 4, 6, 2, 2, 1, 7] ์„ returnํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๋™ 2๋“ฑ์ด ๋‘ ๋ช…, ๊ณต๋™ 4๋“ฑ์ด 2๋ช… ์ด๋ฏ€๋กœ 3๋“ฑ๊ณผ 5๋“ฑ์€ ์—†์Šต๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(score) {
    const len = score.length;
    let new_arr = [];
    while (score.length != 0) {
        let tmp = score.shift();
        let avg = (tmp[0] + tmp[1]) / 2;
        new_arr.push(avg);
    }
    
    let answer = new Array(len);
    answer.fill(-1);

    let k = 1;

    while (new_arr.filter(e => 0 === e).length != new_arr.length) {
        let max = Math.max.apply(Math, new_arr);
        let cnt = 0;
        while (max === Math.max.apply(Math, new_arr)) {
            let idx = new_arr.indexOf(max);
            answer[idx] = k;
            new_arr[idx] = 0;
            cnt += 1;
        }
        k += cnt;
    }
    
    while (answer.indexOf(-1) != -1) {
        answer[answer.indexOf(-1)] = Math.max.apply(Math, answer) + 1;
    }
    
    return answer;
}

+ Recent posts