๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

[Programmers] ์˜์ƒ - Java

category Algorithm/Programmers 2023. 10. 11. 07:27

https://school.programmers.co.kr/learn/courses/30/lessons/42578

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


1. ๋ฌธ์ œ

[์˜์ƒ์ข…๋ฅ˜, ์นดํ…Œ๊ณ ๋ฆฌ]๊ฐ€ ๋‹ด๊ธด 2์ฐจ์› ๋ฐฐ์—ด clothes๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

์„œ๋กœ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•ด์„œ ์ž…์„ ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ฃผ์˜ํ•  ์ ์€

1. ์˜ท์„ ํ•˜๋‚˜๋งŒ ์ž…์„ ์ˆ˜๋„ ์žˆ๋‹ค.

2. ์˜ท์„ ์•„๋ฌด๊ฒƒ๋„ ์ž…์ง€ ์•Š์„ ์ˆ˜๋Š” ์—†๋‹ค.

 

2. ํ’€์ด

ํ•ด์‹œ + ์ˆ˜ํ•™์œผ๋กœ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค.

์ด ์กฐํ•ฉ ์ˆ˜ = (์ข…๋ฅ˜๋ณ„ ์˜์ƒ ์ˆ˜+1) * (์ข…๋ฅ˜๋ณ„ ์˜์ƒ ์ˆ˜+1)  * ... * (์ข…๋ฅ˜๋ณ„ ์˜์ƒ ์ˆ˜+1)  - 1

์„ ํ•ด์ฃผ๋ฉด ์ด ์กฐํ•ฉ์˜ ์ˆ˜๊ฐ€ ๋œ๋‹ค. 

+1์„ ํ•ด์ฃผ๋Š” ์ด์œ ๋Š” ๊ทธ ์˜ท์„ ์ž…์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์˜๋ฉฐ,

-1์„ ํ•ด์ฃผ๋Š” ์ด์œ ๋Š” ์˜ท์„ ์•„๋ฌด๊ฒƒ๋„ ์ž…์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค๋ฉด

[["yellow_hat", "headgear"], ["blue_sunglasses", "eyewear"], ["green_turban", "headgear"]]์˜ ๊ฒฝ์šฐ,

headgear : 2

eyewear : 1

์ธ ์ƒํƒœ์ด๋‹ค.

(2+1) * (1+1) - 1 = 5, ๋‹ต์€ 5๊ฐ€ ๋œ๋‹ค.

[["crow_mask", "face"], ["blue_sunglasses", "face"], ["smoky_makeup", "face"]]

face : 3

(3+1) - 1 = 3, ๋‹ต์€ 3์ด ๋œ๋‹ค.

 

3. ์ฝ”๋“œ

import java.io.*;
import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        
        Map<String, Integer> map = new HashMap<> ();
        for(String[] arr : clothes) {
            if (map.containsKey(arr[1])) {
                map.put(arr[1], map.get(arr[1])+1);
            }
            else {
                map.put(arr[1], 1);
            }
        }
        
        int answer = 1;
        for (String key : map.keySet()) {
            answer *= (map.get(key) + 1);
        }
        answer--;
        
        return answer;
    }
}

4. ์‚ฌ๋‹ด

๊ฐ์„ ์žก์ž ๊ฐ์„ ์žก์ž

ํ•  ์ˆ˜ ์žˆ๋‹ค ํ•  ์ˆ˜ ์žˆ๋‹ค ~