๐ŸŒ  ๋ฌธ์ œ

์ตœ๋นˆ๊ฐ’์€ ์ฃผ์–ด์ง„ ๊ฐ’ ์ค‘์—์„œ ๊ฐ€์žฅ ์ž์ฃผ ๋‚˜์˜ค๋Š” ๊ฐ’์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ •์ˆ˜ ๋ฐฐ์—ด array๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ตœ๋นˆ๊ฐ’์„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”. ์ตœ๋นˆ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ๋ฉด -1์„ return ํ•ฉ๋‹ˆ๋‹ค.

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

  • 0 < array์˜ ๊ธธ์ด < 100
  • 0 ≤ array์˜ ์›์†Œ < 1000

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

[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1

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

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

  • [1, 2, 3, 3, 3, 4]์—์„œ 1์€ 1๊ฐœ 2๋Š” 1๊ฐœ 3์€ 3๊ฐœ 4๋Š” 1๊ฐœ๋กœ ์ตœ๋นˆ๊ฐ’์€ 3์ž…๋‹ˆ๋‹ค.

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

  • [1, 1, 2, 2]์—์„œ 1์€ 2๊ฐœ 2๋Š” 2๊ฐœ๋กœ ์ตœ๋นˆ๊ฐ’์ด 1, 2์ž…๋‹ˆ๋‹ค. ์ตœ๋นˆ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฐœ์ด๋ฏ€๋กœ -1์„ return ํ•ฉ๋‹ˆ๋‹ค.

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

  • [1]์—๋Š” 1๋งŒ ์žˆ์œผ๋ฏ€๋กœ ์ตœ๋นˆ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค.

๐Ÿงž ํ’€์ด

function solution(array) {
    // array์˜ ์ตœ๋Œ“๊ฐ’๋งŒํผ์˜ ๊ธธ์ด๋ฅผ ๊ฐ€์ง„ ์ƒˆ๋กœ์šด ๋ฐฐ์—ด ์ƒ์„ฑ
    let newArray = new Array(Math.max(...array)+1).fill(0);
    // array ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด, ํ•ด๋‹น ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” index์˜ ๊ฐ’ += 1
    for (let i = 0; i < array.length; i++) {
        newArray[array[i]] += 1
    }
    // newArray์˜ ์ตœ๋Œ“๊ฐ’์— ํ•ด๋‹น ํ•˜๋Š” index ์ถœ๋ ฅ
    // ๋งŒ์•ฝ indexOf์™€ lastIndexOf๊ฐ€ ์ง€์นญํ•˜๋Š” ๊ฐ’์ด ๊ฐ™์œผ๋ฉด, -1 ์ถœ๋ ฅ (์ค‘๋ณต์ธ ๊ฒฝ์šฐ ํ™•์ธ)
    if (newArray.indexOf(Math.max(...newArray)) !== newArray.lastIndexOf(Math.max(...newArray))) {
        return -1
    } else {
        return newArray.indexOf(Math.max(...newArray));
    };
}

+ Recent posts