๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ/์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜

์œ„์žฅ (Java)

by 1mj 2021. 11. 1.

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

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ์œ„์žฅ

 

programmers.co.kr

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณ ๋“์  Kit ์œ„์žฅ ๋ฌธ์ œ ํ’€์ด์ด๋‹ค.

์ข…๋ฅ˜ ๋ณ„๋กœ ํ•˜๋‚˜์”ฉ๋งŒ ์ž…์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งต์— ์ข…๋ฅ˜๋ฅผ ํ‚ค๋กœ, ์ข…๋ฅ˜๋ณ„ ์˜๋ฅ˜ ์ˆ˜๋ฅผ ๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ค€๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์ข…๋ฅ˜๋ณ„ ์˜๋ฅ˜ ์ˆ˜๊ฐ€ 2๊ฐœ๋ฉด 0(์•ˆ ์ž…๊ธฐ), 1(1๋ฒˆ ์ž…๊ธฐ), 2(2๋ฒˆ ์ž…๊ธฐ)์˜ ์„ธ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๊ณ , ๊ทธ ๊ฒฝ์šฐ๋“ค์„ ๋ชจ๋‘ ๊ณฑํ•ด์ฃผ๋ฉด ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ฌด ๊ฒƒ๋„ ์•ˆ ์ž…๋Š” ๊ฒฝ์šฐ๋Š” ์—†์œผ๋ฏ€๋กœ ๋ชจ๋‘ 0์ธ ๊ฒฝ์šฐ๋ฅผ ํ•˜๋‚˜ ๋นผ์ฃผ์—ˆ๋‹ค.

 

import java.util.*;

class Solution {
    public int solution(String[][] clothes) {
        int answer = 1;
        
        // clothes ๋ฐฐ์—ด์˜ ์ข…๋ฅ˜๋ฅผ key๋กœ, ์ข…๋ฅ˜๋ณ„ ๊ฐœ์ˆ˜๋ฅผ value๋กœ map์— ๋„ฃ์–ด์คŒ 
        HashMap<String, Integer> map = new HashMap<>();
        for (int i = 0; i < clothes.length; i++) {
            // ์ข…๋ฅ˜, ๊ฐœ์ˆ˜์˜ ์Œ์œผ๋กœ ๋„ฃ์–ด์คŒ
            // ๊ฐœ์ˆ˜๋Š” map์— ๊ทธ ์ข…๋ฅ˜๊ฐ€ ์—†์œผ๋ฉด 0์„ ๋„ฃ์–ด์คŒ
            map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 0) + 1);
        }
        
        // ์ข…๋ฅ˜, ๊ฐœ์ˆ˜์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ map์—์„œ key๋งŒ ์ถ”์ถœ
        Set<String> set = map.keySet();
        for (String key : set) {
            // answer์— value + 1 ํ•œ ๊ฐ’์„ ๋ˆ„์ ํ•˜์—ฌ ๊ณฑํ•ด์คŒ
            answer = answer * (map.get(key) + 1);
        }
        
        // ์•ˆ ์ž…๋Š” ๊ฒฝ์šฐ
        return answer - 1;
    }
}

๋Œ“๊ธ€