[PS] 99ν΄λ½ μ½ν μ€ν°λ 6μΌμ°¨ TIL (μμ)
νκ·Έ: 99ν΄λ½, PS, TIL, μ½λ©ν μ€νΈμ€λΉ, νν΄99, ν΄μ
μΉ΄ν κ³ λ¦¬: PS
λ¬Έμ
νμ΄
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public int solution(String[][] clothes) {
int answer = 1;
HashMap<String, Integer> map = new HashMap<>();
for (int i = 0; i < clothes.length; i++) {
map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 0) + 1);
}
for (int count : map.values()) {
answer *= count + 1;
}
return answer - 1;
}
}
λ¬Έμ μμ μ²λΌ μ’ λ₯ λ³λ‘ λͺ κ°μ© μλμ§ μ μ₯ν HashMap μ λ§λ λ€.
μ’ λ₯ | κ°―μ |
---|---|
μΌκ΅΄ | 2 |
μμ | 1 |
νμ | 1 |
κ²μ· | 1 |
map.put(clothes[i][1], map.getOrDefault(clothes[i][1], 0) + 1);
μ΄λ κ² νλ©΄ key μ μ·μ μ’
λ₯κ° λ€μ΄κ°κ³ , value λ‘ κ°―μλ₯Ό λ£μ μ μλ€.
getOrDefault()
λ©μλλ ν€μ λν κ°μ΄ μμΌλ©΄ κ·Έ κ°μ λ°ννκ³ μμΌλ©΄ 0μ λ°ννλ€. κ³μ 1μ© λλ €κ°μΌ νλ―λ‘ +1 μ ν΄μ€λ€.
λ§μ½ A μ’ λ₯ μμμ΄ 3κ°, B μ’ λ₯ μμμ΄ 2κ°μΈ κ²½μ°λ₯Ό μκ°ν΄λ³΄μ.
- A λλ B λ§ μ λ κ²½μ° : 3 + 2
- A μ B λ₯Ό μμ΄ μ λ κ²½μ° : 3 * 2
- μ΄ μ‘°ν© κ°―μ : 3 + 2 + (3 * 2) = 11 κ°
A μ’ λ₯μ μμμ΄ a1, a2, a3 μ΄ μκ³ , B μ’ λ₯μ μμμ΄ b1, b2 μΌλ μ ν λ°©λ²μ μλ μμμ λ€μκ³Ό κ°μ΄ μ ν ν μ μλ€.
- A μ’ λ₯ μ ν λ°©λ² : μ νμν¨ / a1 / a2 / a3 (μ΄ 4 κ°μ§)
- B μ’ λ₯ μ ν λ°©λ² : μ νμν¨ / b1 / b2 (μ΄ 3 κ°μ§)
κ·Έλ¬λ©΄ A μ B μ μ΄ μ‘°ν© μλ (A μ’ λ₯ μ ν λ°©λ²) * (B μ’ λ₯ μ ν λ°©λ²) = 12 κ°κ° λμ¨λ€. μ¬κΈ°μ λλ€ μ ν μνλ κ²½μ°μ μ 1 μ λΉΌμ£Όλ©΄ 11 μ΄ λμ¨λ€.
μ΄ μμ μ ν κ²½μ°μ μ : (A μ’
λ₯ + 1) * (B μ’
λ₯ + 1) - 1
μ΄κ²μ μ½λλ‘ κ΅¬ννλ©΄ λ€μκ³Ό κ°λ€.
1
2
3
4
5
6
// (A + 1)(B + 1)...
int answer = 1;
for (int count : map.values()) {
answer *= count + 1;
}
return answer - 1;
λκΈλ¨κΈ°κΈ°