๊ด€๋ฆฌ ๋ฉ”๋‰ด

Algo ์“ฐ์ž

[Programmers] (Javascript) ํŠœํ”Œ ๋ณธ๋ฌธ

๐Ÿ’ฏ 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๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌํ•œ ์ˆœ์„œ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด ์ •๋‹ต์ธ ๊ฒƒ์ด๋‹ค. 

์ด๋ ‡๊ฒŒ ๊ตฌํ˜„์ด ๋งˆ๋ฌด๋ฆฌ ๋œ๋‹ค.