[Programmers] (Javascript) ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ

2022. 4. 28. 16:00ยท๐Ÿ’ฏ CodingTest/Programmers

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

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ

๋ ˆ์Šคํ† ๋ž‘์„ ์šด์˜ํ•˜๋˜ ์Šค์นดํ”ผ๋Š” ์ฝ”๋กœ๋‚˜19๋กœ ์ธํ•œ ๋ถˆ๊ฒฝ๊ธฐ๋ฅผ ๊ทน๋ณตํ•˜๊ณ ์ž ๋ฉ”๋‰ด๋ฅผ ์ƒˆ๋กœ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ๊ณ ๋ฏผํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ์กด์—๋Š” ๋‹จํ’ˆ์œผ๋กœ๋งŒ ์ œ๊ณตํ•˜๋˜ ๋ฉ”๋‰ด๋ฅผ ์กฐํ•ฉํ•ด์„œ ์ฝ”์Šค์š”๋ฆฌ ํ˜•ํƒœ๋กœ ์žฌ๊ตฌ์„ฑํ•ด์„œ

programmers.co.kr

 

โ–ถ ์ฝ”๋“œ : 

 

function solution(orders, course) 
{
    let answer = [];
    let data = new Map();
    
    for (const order of orders)
    {
        let orderToArr = [...order];
        orderToArr = orderToArr.sort();
        for (let i = order.length; i>0; i--)
        {
            let combinations = combination(orderToArr, i);
            for (let c of combinations)
            {
                c = c.join('');
                data.set(c, data.get(c) + 1 || 1);
            }
        }
    }

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

    for (const num of course)
    {
        maxNum = 2
        for (const e of data)
        {
            if (e[0].length === num)
            {
                if (e[1] >= maxNum){
                    answer.push(e[0]);
                    maxNum = e[1]
                }
            }
        }
    }
    answer = answer.sort();
    return answer;
}


const combination = function (arr, selectNumber) {
    const results = [];
    if (selectNumber === 1) return arr.map((value) => [value]);
  
    arr.forEach((fixed, index, origin) => {
      const rest = origin.slice(index + 1); 
      const temp = combination(rest, selectNumber - 1);
      const attached = temp.map((e) => [fixed, ...e]);
      results.push(...attached);
    });
    return results;
  }

 

โ–ถ ๋ฌธ์ œํ’€์ด : 

1. ์œ„ ๋ฌธ์ œ๋Š” ์กฐํ•ฉ(Combination)์„ ์ด์šฉํ•ด ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. 

2. ๊ธฐ์กด ์‚ฌ์šฉํ•˜๋˜ Python์˜ ๊ฒฝ์šฐ itertools์— ๋‚ด์žฅ๋œ combination ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋˜์—ˆ์ง€๋งŒ JS์˜ ๊ฒฝ์šฐ์—๋Š” ์ง์ ‘ ๊ตฌํ˜„ํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋‹ค. ์ธํ„ฐ๋„ท์˜ ๋„์›€์„ ๋ฐ›์•„ ์ˆœ์—ด๊ณผ ์กฐํ•ฉ ๊ด€๋ จํ•˜์—ฌ ํ•จ์ˆ˜๋ฅผ ์งœ๋†“์œผ์‹  ๋ถ„์ด ๊ณ„์…”์„œ ๋‚ด์šฉ์„ ์ž˜ ์ฝ๊ณ  ์ ์šฉํ•˜์˜€๋‹ค. 

3. ๊ทธ ์™ธ์˜ ์ฝ”๋“œ๋Š” ๋ฌธ์ œ์—์„œ ์š”๊ตฌํ•œ๋Œ€๋กœ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •์ด์—ˆ๊ธฐ์— ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•˜๋‹ค.

'๐Ÿ’ฏ CodingTest > Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Programmers] ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•  (0) 2022.06.11
[Programmers] (Javascript) ์ˆœ์œ„ ๊ฒ€์ƒ‰  (2) 2022.05.02
[Programmers] (Javascript) ์ถ”์„ ํŠธ๋ž˜ํ”ฝ  (0) 2022.04.26
[Programmers] (Javascript) ํŠœํ”Œ  (0) 2022.04.25
[Programmers] (Javascript) ์ˆ˜์‹ ์ตœ๋Œ€ํ™”  (0) 2022.04.25
'๐Ÿ’ฏ CodingTest/Programmers' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Programmers] ๋ฉ€์ฉกํ•œ ์‚ฌ๊ฐํ˜•
  • [Programmers] (Javascript) ์ˆœ์œ„ ๊ฒ€์ƒ‰
  • [Programmers] (Javascript) ์ถ”์„ ํŠธ๋ž˜ํ”ฝ
  • [Programmers] (Javascript) ํŠœํ”Œ
S.Honey
S.Honey
  • S.Honey
    Algo ์“ฐ์ž
    S.Honey
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (123)
      • ํšŒ๊ณ  (0)
        • ์ทจ์—… ํ›„ ํšŒ๊ณ  (0)
      • ๐Ÿƒ Frontend Road-Map (2)
        • ๐Ÿšฉ Summary (1)
        • ๐Ÿ“š Road-Map Contents (1)
        • ๐ŸŸง HTML (0)
        • ๐ŸŸฆ CSS (0)
        • ๐ŸŸจ Javascript (0)
        • โฌœ React (0)
        • ๐ŸŸช Redux (0)
      • Backend (0)
        • QueryDSL (0)
      • ๐Ÿ’ป Programming Language (54)
        • C# (51)
        • Flutter-Dart (3)
        • Java (0)
      • ๐Ÿ“š Computer Science (4)
        • Algorithms (4)
        • Database (0)
        • Network (0)
        • Operating System(OS) (0)
      • ๐Ÿ’ฏ CodingTest (60)
        • BaekJoon (22)
        • Programmers (34)
        • CodeTree (4)
      • โœ’๏ธ Design Pattern (1)
      • ๐Ÿฑ Etc (2)
        • Jenkins Plugin ์ œ์ž‘๊ธฐ (1)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

    • ๊ณต์ง€์‚ฌํ•ญ

      • ๐Ÿ“– ๊ณต๋ถ€ ์ฐธ๊ณ  ๊ต์žฌ ๋ฐ ์ž๋ฃŒ
    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

      ๊ตฌํ˜„
      BFS
      ์‹œ๋ฎฌ๋ ˆ์ด์…˜
      ์ฝ”๋“œํŠธ๋ฆฌ
      Flutter
      ๋ฌธ์ž์—ด ํŒŒ์‹ฑ
      DP
      JS
      ์ž๋ฃŒ๊ตฌ์กฐ
      JavaScript
      ์ด์ง„ํƒ์ƒ‰
      ์Šคํ„ฐ๋””
      ์นด์นด์˜ค
      ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
      ์“ฐ์…จ์ž–์•„
      BAEKJOON
      ๊ทธ๋ž˜ํ”„ ํƒ์ƒ‰
      DART
      Java
      c#
      ๋™์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
      sort
      ํŒŒ์ด์ฌ
      ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
      ์‚ผ์„ฑsw์—ญํ…Œ
      programmers
      ์•Œ๊ณ ๋ฆฌ์ฆ˜
      ๋ฐฑ์ค€
      Algorithm
    • ์ตœ๊ทผ ๋Œ“๊ธ€

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.1
    S.Honey
    [Programmers] (Javascript) ๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผ
    ์ƒ๋‹จ์œผ๋กœ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”