πŸ’― CodingTest/Programmers

[Programmers] (Javascript) νŠœν”Œ

S.Honey 2022. 4. 25. 15:28

https://programmers.co.kr/learn/courses/30/lessons/64065?language=javascript 

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - νŠœν”Œ

"{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1]

programmers.co.kr

 

β–Ά μ½”λ“œ : 

function solution(s) {
    var answer = [];
    var data = new Map();

    // μž…λ ₯으둜 λ“€μ–΄μ˜€λŠ” λ¬Έμžμ—΄ νŒŒμ‹± 
    var reg = new RegExp(/[\{\}]/,'g');
    s = s.replace(reg, '');
    s = s.split(',');

    for (const e of s)
    {
        data.set(e, data.get(e)+1 || 1);
    }

    data = [... data].sort((a,b) => b[1] - a[1]);

    for (const e of data)
    {
        answer.push(parseInt(e[0]));
    }

    return answer;
}

 

β–Ά λ¬Έμ œν’€μ΄ :

1. λ¨Όμ € μž…λ ₯으둜 λ“€μ–΄μ˜¨ λ¬Έμžμ—΄λ“€μ„ μˆ«μžμ™€ μ‰Όν‘œλ§Œ μ œμ™Έν•˜κ³  μ—†μ• μ£Όμ—ˆλ‹€. ({} -> μ€‘κ΄„ν˜Έ 제거) 

2. 이후 각각의 μ›μ†Œμ˜ 수λ₯Ό μ„Έμ£Όμ—ˆλ‹€. 

3. 문제λ₯Ό μž˜ μ½μ–΄λ³΄λ©΄ μž…λ ₯으둜 λ“€μ–΄μ˜¨ νŠœν”Œμ˜ μ‘°ν•©λ“€μ—λŠ” κ°€μž₯ λ¨Όμ € μ˜€λŠ” μ›μ†Œμ˜ μˆ˜κ°€ μ œμΌλ§Žκ³  κ°€μž₯ μ μ€μˆ˜μ˜ μ›μ†Œκ°€ μ œμΌ λŠ¦μ€ μˆœμ„œμ΄λ‹€. μ¦‰, μ •λ¦¬ν•˜μžλ©΄ λ“±μž₯ν•˜λŠ” μ›μ†Œμ˜ μˆ˜λŒ€λ‘œ μ •λ ¬ν•œ νŠœν”Œμ„ μΆœλ ₯ν•˜λ©΄λœλ‹€. μ΄λ•Œ νŠœν”Œμ˜ μ›μ†ŒλŠ” μ€‘λ³΅λ˜λ©΄ μ•ˆλ˜κΈ°μ— μ΄λ₯Ό ν™œμš©ν•˜κΈ°μœ„ν•œ μžλ£Œκ΅¬μ‘°λ‘œ Map을 μ‚¬μš©ν•˜μ˜€λ‹€. (ν‚€ μ€‘볡이 μ•ˆλ˜μ–΄μ„œ) λ”°λΌμ„œ Map을 μ„ μ–Έν•˜μ—¬ ν•΄λ‹Ή μ›μ†Œλ“€μ˜ λ“±μž₯횟수λ₯Ό μ„Έμ–΄μ£Όκ³  keyλ₯Ό value값을 κΈ°μ€€μœΌλ‘œ λ‚΄λ¦Όμ°¨μˆœ μ •λ ¬ν•œ μˆœμ„œλ₯Ό μΆœλ ₯ν•˜λ©΄ μ •닡인 κ²ƒμ΄λ‹€. 

μ΄λ ‡κ²Œ κ΅¬ν˜„μ΄ 마무리 λœλ‹€.