์šฐ๊ทœ์ด์ธ์šฐ์œค
Eager To Learn ๐ŸŒŒ
์šฐ๊ทœ์ด์ธ์šฐ์œค
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ๐Ÿก ํ™ˆ
  • ๐Ÿš€ ๊นƒํ—ˆ๋ธŒ
  • โ›… ํƒœ๊ทธ ํด๋ผ์šฐ๋“œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (217)
    • ๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS (170)
      • JAVA (82)
      • MYSQL (1)
      • Docker (2)
      • PYTHON (24)
      • LeetCode 150 (39)
      • Algorithm ๊ธฐ๋ฒ• (1)
      • ๋ฐ”ํ‚น๋… (21)
    • ๋ธ”๋กœ๊ทธ ์ด์‚ฌ (0)
    • Error (1)
    • CS (15)
      • DataBase (2)
      • OS (7)
      • Network (1)
      • Spring (1)
      • ์ž๋ฃŒ๊ตฌ์กฐ (3)
      • Java (1)
    • Learned (7)
      • Spring (7)
    • ๊ฐœ๋ฐœ์„œ์  (15)
      • ๊ฐ€์ƒ ๋ฉด์ ‘ ์‚ฌ๋ก€๋กœ ๋ฐฐ์šฐ๋Š” ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ ์„ค๊ณ„ ๊ธฐ์ดˆ (1)
      • ์˜ค๋ธŒ์ ํŠธ - ์กฐ์˜ํ˜ธ (7)
      • ์นœ์ ˆํ•œ SQL ํŠœ๋‹ (7)
    • ํšŒ๊ณ  (2)
hELLO ยท Designed By ์ •์ƒ์šฐ.
์šฐ๊ทœ์ด์ธ์šฐ์œค

Eager To Learn ๐ŸŒŒ

๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/JAVA

[JAVA] 2021 KAKAO BLIND RECRUITMENT ใ€๋ฉ”๋‰ด ๋ฆฌ๋‰ด์–ผใ€‘

2023. 4. 13. 15:22


๋ฐฑํŠธ๋ž˜ํ‚น์œผ๋กœ ์Œ์‹ ์กฐํ•ฉ์„ ๊ตฌํ•œ ๋’ค, ์Œ์‹ ์กฐํ•ฉ ๋ณ„ ์ฃผ๋ฌธ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. (bt() ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ)

 

<์Œ์‹ ์กฐํ•ฉ, ์ฃผ๋ฌธํšŸ์ˆ˜> ์™€ ๊ฐ™์ด ์ž…๋ ฅ๋  ๊ฒƒ์ด๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ์ด ๋งต์„ ์ด์šฉํ•ด์„œ, <์ฝ”์Šค์‚ฌ์ด์ฆˆ, ์ฝ”์Šค ์‚ฌ์ด์ฆˆ์˜ ์ตœ๋Œ€ ์ฃผ๋ฌธํšŸ์ˆ˜> ๋ฅผ ๊ตฌํ•œ๋‹ค. (getMaxMenu())

 

๊ทธ๋ฆฌ๊ณ  ์ฝ”์Šค์‚ฌ์ด์ฆˆ๋ณ„ ์ตœ๋Œ€ ์ฃผ๋ฌธํšŸ์ˆ˜๋ฅผ ์•Œ๊ฒŒ ๋์œผ๋ฏ€๋กœ,

 

์ฝ”์Šค ์‚ฌ์ด์ฆˆ์™€ ์Œ์‹ ์กฐํ•ฉ์˜ ๊ธธ์ด๊ฐ€ ์ผ์น˜ํ•˜๋ฉด์„œ [์ฃผ๋ฌธํšŸ์ˆ˜์™€ ์ตœ๋Œ€ ์ฃผ๋ฌธํšŸ์ˆ˜๊ฐ€ ์ผ์น˜ํ•œ ๊ฒƒ & 2๋ฒˆ ์ด์ƒ ์ฃผ๋ฌธ ๋œ]๊ฒƒ์˜ Max ๊ฐ’์„ ๋ฆฌ์ŠคํŠธ ์ž๋ฃŒ๊ตฌ์กฐ์ธ ans์— ๊ธฐ๋กํ•œ๋‹ค.

 

์ •๋ ฌํ•œ ๋’ค, ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋ฐ˜ํ™˜ํ•œ๋‹ค

 


import java.util.*;
class Solution {
    HashMap<String,Integer> map;
    HashMap<Integer,Integer> max;
    List<String> ans;
    StringBuilder sb;
    public String[] solution(String[] orders, int[] course) {
        map = new HashMap<>();
        max = new HashMap<>();
        ans = new ArrayList<>();
        sb = new StringBuilder();

        for(String order : orders){
            for(int num : course){
                bt(order,num,0);
            }
        }

        getMaxMenu();

        getAns();

        return ans.toArray(new String[ans.size()]);
    }

    void getAns(){
        for(Map.Entry<String,Integer> entry : map.entrySet()){
            int len  = entry.getKey().length();
            if(max.get(len)==entry.getValue() && entry.getValue()>=2){
                ans.add(entry.getKey());
            }
        }
        Collections.sort(ans);

    }

    void getMaxMenu(){
        for(Map.Entry<String,Integer> entry : map.entrySet()){
            int len  = entry.getKey().length();
            max.put(len,Math.max(max.getOrDefault(len,0),entry.getValue()));
        }
    }

    void bt(String order, int size, int start){
        if(sb.length()==size){
            char[] arr = sb.toString().toCharArray();
            Arrays.sort(arr);
            String menu = new String(arr);
            map.put(menu,map.getOrDefault(menu,0)+1);
            return;
        }
        for(int i=start;i<order.length();i++){
            String menu = String.valueOf(order.charAt(i));
            if(sb.indexOf(menu)>=0){
                continue;
            }
            sb.append(menu);
            bt(order,size,i+1);
            sb.deleteCharAt(sb.length()-1);
        }
    }
}
    '๐Ÿ‘จ๐Ÿป‍๐Ÿ’ป PS/JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [JAVA] 2022 KAKAO TECH INTERNSHIP ใ€๋‘ ํ ํ•ฉ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๊ธฐใ€‘
    • [JAVA] 2020 ์นด์นด์˜ค ์ธํ„ด์‹ญ ใ€๋ณด์„ ์‡ผํ•‘ใ€‘
    • [JAVA] 2019 ์นด์นด์˜ค ๊ฐœ๋ฐœ์ž ๊ฒจ์šธ ์ธํ„ด์‹ญ ใ€ํŠœํ”Œใ€‘
    • [JAVA] 2018 KAKAO BLIND RECRUITMENT ใ€์บ์‹œใ€‘
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ์šฐ๊ทœ์ด์ธ์šฐ์œค
    ๊ฐœ๋ฐœ์ž ๊ฟˆ๋‚˜๋ฌด

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