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

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

[Javascript] ํŠœํ”Œ (64065)

๋ฌธ์ œ๋งํฌ

์ ‘๊ทผ ๋ฐฉ๋ฒ•

"{{2},{2,1},{2,1,3},{2,1,3,4}}" ์ด๋Ÿฌํ•œ ๋ฌธ์ž์—ด์˜ ํŠน์ง•์€ ๊ฐ€์žฅ ๋งŽ์€ ์ˆ˜๊ฐ€ ์ œ์ผ ์•ž์— ์˜จ๋‹ค๋Š” ์ ์ด๋‹ค.
์ฆ‰ ์œ„์˜ ์˜ˆ์—์„œ๋Š” 2๊ฐ€ ์ œ์ผ ๋งŽ๊ณ  ๊ทธ ๋‹ค์Œ 1, ๊ทธ ๋‹ค์Œ 3, ๋งˆ์ง€๋ง‰์œผ๋กœ 4 ์ด๋ฏ€๋กœ [2,1,3,4]๊ฐ€ ์ •๋‹ต์ด๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋งŒ ๋‚จ๋„๋ก ํŒŒ์‹ฑํ•˜์˜€๋‹ค.

๊ทธ๋ฆฌ๊ณ  obj๋ฅผ ์ƒ์„ฑํ•˜์—ฌ key๋ฅผ ์ˆซ์ž, value๋ฅผ ์ˆซ์ž๊ฐ€ ๋“ค์–ด์žˆ๋Š” ๊ฐœ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ 
value๋ฅผ ํ•œ๋ฒˆ 0์œผ๋กœ ์ดˆ๊ธฐํ™” ํ•œ ๋’ค, key์˜ ๊ฐ’์ด ์˜ฌ๋•Œ๋งˆ๋‹ค ++ ํ•˜์—ฌ key : value๋ฅผ ๋งŒ๋“ค๊ณ 

value๋ฅผ sortํ•˜์—ฌ ๊ทธ๋•Œ์˜ key๊ฐ’์„ answer์— ๋„ฃ์—ˆ๋‹ค.
s.forEach(e => {
      if(e!==""){
        obj[e] = 0
      }
    })

s.forEach(e => {
  if(e!==""){
    obj[e]++
  }
})โ€‹

  obj์˜ value๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ๋„ฃ๋Š” ๋ถ€๋ถ„์ด ์ข€.. ๋น„ํšจ์œจ์ ์œผ๋กœ ๋ณด์ด๋Š”๋ฐ ๋”ฑ ๋– ์˜ค๋ฅด๋Š” ๋ฐฉ๋ฒ•์ด ์—†๋‹ค..

โ€ป ๊ฐ์ฒด์˜ value๋ฅผ ๊ธฐ์ค€์œผ๋กœ sortํ•˜๋Š” ๋ฐฉ๋ฒ•
 ==> const objSort = Object.entries(๊ฐ์ฒด).sort(([, a], [, b]) => b - a); (๋‚ด๋ฆผ์ฐจ์ˆœ)

 

function solution(s) {
    var answer = []
    s = s.split("{").join().split("}").join().split(",")
    const obj = {}

    s.forEach(e => {
      if(e!==""){
        obj[e] = 0
      }
    })

    s.forEach(e => {
      if(e!==""){
        obj[e]++
      }
    })

    const objSort = Object.entries(obj).sort(([, a], [, b]) => b - a);

    objSort.forEach(e => answer.push(parseInt(e[0])))
    
    return answer
}