๐Ÿ…ฟ[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ตœ๋นˆ๊ฐ’ ๊ตฌํ•˜๊ธฐ

Chobbyยท2022๋…„ 10์›” 11์ผ
1

Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
72/345

๐Ÿงก๋ฌธ์ œ ์„ค๋ช…

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


๐Ÿ’›์ œํ•œ์‚ฌํ•ญ

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

๐Ÿ’š์ž…์ถœ๋ ฅ ์˜ˆ

arrayresult
[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) {
    // ์ž๋ฃŒ์‚ฌ์ „ ์ƒ์„ฑ
    const dict = {0:0}
    // ๋ฐฐ์—ด ๋‚ด์˜ ์ˆ˜๊ฐ€ ๋“ฑ๋ก๋˜์–ด์žˆ๋‹ค๋ฉด ++, ์•„๋‹ˆ๋ผ๋ฉด 1๋กœ ๋“ฑ๋ก
    array.forEach(item => {
        dict[item] = dict[item] ? ++dict[item] : 1
    })
    // ์ œ์ผ ํฐ ๊ฐ’ ๋ฐ ํ•ด๋‹น ๊ฐ’์„ ๋‹ด์„ ์ธ๋ฑ์Šค ์ค€๋น„
    const max = Math.max(...Object.values(dict))
    let idx = 0
    // ์ตœ๋Œ“๊ฐ’์ด 2๊ฐœ ์ด์ƒ์ด๋ผ๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ ์•„๋‹ˆ๋ผ๋ฉด, ์ตœ๋Œ“๊ฐ’์˜ ์ธ๋ฑ์Šค๋ฅผ ์ €์žฅ
    if(Object.values(dict).filter(a => a === max).length !== 1) {
        return -1
    } else {
        Object.values(dict).forEach((a,i) => a === max ? idx=i : null)
    }
    // ๋ฐ˜ํ™˜
    return Number(Object.keys(dict)[idx])
}
profile
๋‚ด ์ง€์‹์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€๋‹ดํ•จ

0๊ฐœ์˜ ๋Œ“๊ธ€