ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ณ ๋“์  kit ์œ„์žฅ
    Algo Rhythm๐Ÿ•บ๐Ÿ’ƒ/Programmers 2020. 7. 13. 14:32

    ๐Ÿ“š ๋ฌธ์ œ ์„ค๋ช…

    ์ŠคํŒŒ์ด๋“ค์€ ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…์–ด ์ž์‹ ์„ ์œ„์žฅํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜ท์ด ์•„๋ž˜์™€ ๊ฐ™๊ณ  ์˜ค๋Š˜ ์ŠคํŒŒ์ด๊ฐ€ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ธด ์ฝ”ํŠธ, ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ๋ฅผ ์ž…์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๋‚ ์€ ์ฒญ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ ๋Œ€์‹  ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

     

    ์ข…๋ฅ˜

    ์ด๋ฆ„

    ์–ผ๊ตด

    ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค

    ์ƒ์˜

    ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ 

    ํ•˜์˜

    ์ฒญ๋ฐ”์ง€

    ๊ฒ‰์˜ท

    ๊ธด ์ฝ”ํŠธ

     

    ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด clothes๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

     

    ์ œํ•œ์‚ฌํ•ญ

    • clothes์˜ ๊ฐ ํ–‰์€ [์˜์ƒ์˜ ์ด๋ฆ„, ์˜์ƒ์˜ ์ข…๋ฅ˜]๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ์˜ ์ˆ˜๋Š” 1๊ฐœ ์ด์ƒ 30๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค.

    • ๊ฐ™์€ ์ด๋ฆ„์„ ๊ฐ€์ง„ ์˜์ƒ์€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • clothes์˜ ๋ชจ๋“  ์›์†Œ๋Š” ๋ฌธ์ž์—ด๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ๋ชจ๋“  ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 1 ์ด์ƒ 20 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ด๊ณ  ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž ๋˜๋Š” '_' ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

    • ์ŠคํŒŒ์ด๋Š” ํ•˜๋ฃจ์— ์ตœ์†Œ ํ•œ ๊ฐœ์˜ ์˜์ƒ์€ ์ž…์Šต๋‹ˆ๋‹ค.

     

    ๐ŸŽฏ ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋‚˜

    import java.util.HashMap;
    import java.util.Iterator;
    
    class Solution {
        public int solution(String[][] clothes) {
            int answer = 1;
            HashMap<String, Integer> typeNFreq = new HashMap<String, Integer>();
            
            for(int i = 0; i < clothes.length; i++) {
                String type = clothes[i][1];
                
                if(typeNFreq.containsKey(type)) {
                    int freq = typeNFreq.get(type) + 1;
                    typeNFreq.replace(type, freq);
                }
                else {
                    typeNFreq.put(type, 1);
                }
            }
            
            Iterator<Integer> values = typeNFreq.values().iterator();
            
            while(values.hasNext()) {
                int v = values.next();
                answer *= (v + 1); // +1 -> not wearing
            }
            
            answer--; // exclude when wearing nothing
            
            return answer;
        }
    }

     

    ๐Ÿง ์™œ ์ €๋ ‡๊ฒŒ ํ’€์—ˆ๋‚˜

    ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

    ๋จผ์ € ์˜์ƒ์˜ ์ข…๋ฅ˜๋ฅผ Key๋กœ ํ•˜๊ณ  ๊ทธ ์ข…๋ฅ˜์— ํ•ด๋‹นํ•˜๋Š” ์˜ท์˜ ๊ฐœ์ˆ˜๋ฅผ value๋กœ ํ•˜๋Š” ํ•ด์‹œ๋งต์„ ๋งŒ๋“ ๋‹ค.

    ๊ทธ๋ฆฌ๊ณ  ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง€๋Š” clothes ๋ฐฐ์—ด์„ ์ˆœํšŒํ•˜๋ฉด์„œ ํ•ด์‹œ๋งต์— ๊ด€๋ จ ์ •๋ณด๋ฅผ ๋„ฃ๋Š”๋‹ค.

     

    ๋งˆ์ง€๋ง‰์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์ฃผ๋Š”๋ฐ ์ด ๋ถ€๋ถ„์ด ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ด๋‹ค!

     

    ๋งŒ์•ฝ ์ŠคํŒŒ์ด๊ฐ€ A๋ผ๋Š” ์˜์ƒ์˜ ์ข…๋ฅ˜์— a1, a2, a3๋ผ๋Š” ์˜ท์ด ์žˆ๊ณ  B๋ผ๋Š” ์˜์ƒ์˜ ์ข…๋ฅ˜์— b1, b2๋ผ๋Š” ์˜ท์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ๊ทธ๋ฆฌ๊ณ  A์™€ B์— ๊ฐ๊ฐ ์˜ท์„ ์•ˆ ์ž…๋Š”๋‹ค๋Š” ๋œป์ธ <์•ˆ ์ž…์Œ> ์ด๋ผ๋Š” ์˜ท์„ ์ถ”๊ฐ€ํ•œ๋‹ค.

    ์ด๋Ÿด ๊ฒฝ์šฐ ์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์˜ ์กฐํ•ฉ์˜ ์ˆ˜๋Š” (A ์˜์ƒ์˜ ๊ฐœ์ˆ˜) * (B ์˜์ƒ์˜ ๊ฐœ์ˆ˜) = 4 * 3 = 12์ด๋‹ค.

    ํ•˜์ง€๋งŒ ์ŠคํŒŒ์ด๋Š” ํ•˜๋ฃจ์— ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ ์˜ท์€ ์ž…๊ธฐ ๋•Œ๋ฌธ์— A ์˜์ƒ๊ณผ B ์˜์ƒ ๋ชจ๋‘ ์ž…์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ํ•˜๋‚˜๋Š” ๋นผ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

     

    ๐Ÿ“– ๋ฌด์—‡์„ ๋ฐฐ์› ๋‚˜

    ๊ณ ๋“ฑํ•™๊ต๋•Œ ํ™•๋ฅ ๊ณผ ํ†ต๊ณ„ ์‹œ๊ฐ„์— ๋ฐฐ์šด ๊ฒƒ์ด ์ง€๊ธˆ ์“ฐ์ผ ์ค„ ๋ชฐ๋ž๋‹ค.

    ์˜ค๋žœ๋งŒ์— ํ™•ํ†ต์„ ๋– ์˜ฌ๋ฆฌ๊ฒŒ ๋˜์„œ ๋ฐ˜๊ฐ‘๊ณ  ์ˆ˜ํ•™๊ณต๋ถ€๋ฅผ ์—ด์‹ฌํžˆ ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค.

    ๋Œ“๊ธ€

Designed by Tistory.