2019λ 10μ 30μΌ
οΏ½
μΆμ²: https://programmers.co.kr/learn/courses/30/lessons/42578
μ€νμ΄λ€μ λ§€μΌ λ€λ₯Έ μ·μ μ‘°ν©νμ¬ μ μ΄ μμ μ μμ₯ν©λλ€.
μλ₯Ό λ€μ΄ μ€νμ΄κ° κ°μ§ μ·μ΄ μλμ κ°κ³ μ€λ μ€νμ΄κ° λκ·Έλ μκ²½, κΈ΄ μ½νΈ, νλμ ν°μ μΈ λ₯Ό μ μλ€λ©΄ λ€μλ μ μ²λ°μ§λ₯Ό μΆκ°λ‘ μ κ±°λ λκ·Έλ μκ²½ λμ κ²μ μ κΈλΌμ€λ₯Ό μ°©μ©νκ±°λ ν΄μΌ ν©λλ€.
μ’ λ₯ | μ΄λ¦ |
---|---|
μΌκ΅΄ | λκ·Έλ μκ²½, κ²μ μ κΈλΌμ€ |
μμ | νλμ ν°μ μΈ |
νμ | μ²λ°μ§ |
κ²μ· | κΈ΄ μ½νΈ |
μ€νμ΄κ° κ°μ§ μμλ€μ΄ λ΄κΈ΄ 2μ°¨μ λ°°μ΄ clothesκ° μ£Όμ΄μ§ λ μλ‘ λ€λ₯Έ μ·μ μ‘°ν©μ μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
- clothesμ κ° νμ [μμμ μ΄λ¦, μμμ μ’ λ₯]λ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- μ€νμ΄κ° κ°μ§ μμμ μλ 1κ° μ΄μ 30κ° μ΄νμ λλ€.
- κ°μ μ΄λ¦μ κ°μ§ μμμ μ‘΄μ¬νμ§ μμ΅λλ€.
- clothesμ λͺ¨λ μμλ λ¬Έμμ΄λ‘ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- λͺ¨λ λ¬Έμμ΄μ κΈΈμ΄λ 1 μ΄μ 20 μ΄νμΈ μμ°μμ΄κ³ μνλ²³ μλ¬Έμ λλ '_' λ‘λ§ μ΄λ£¨μ΄μ Έ μμ΅λλ€.
- μ€νμ΄λ ν루μ μ΅μ ν κ°μ μμμ μ μ΅λλ€.
clothes | return |
---|---|
[['yellow_hat', 'headgear'], ['blue_sunglasses', 'eyewear'], ['green_turban', 'headgear']] | 5 |
[['crow_mask', 'face'], ['blue_sunglasses', 'face'], ['smoky_makeup', 'face']] | 3 |
-
κ²°κ΅ μμ μ’ λ₯λ³ μ·μ κ°―μμ μ‘°ν©μ ꡬνλ λ¬Έμ μ΄λ€.
- λ¨, κ°μ μ’ λ₯μ μ·μ κ³ λ₯Ό μλ μλ€.
-
λ¬Έμ μμ
κ°μ μ΄λ¦μ κ°μ§ μμμ μ‘΄μ¬νμ§ μλλ€
λΌλ μ‘°κ±΄μ΄ μλ€.- λ°λΌμ μμ μ΄λ¦μ μ κ²½ μμ¨λ λλ€.
- ν΄λΉ μμμ΄ λͺ κ°μΈμ§λ§ μλ©΄λλ―λ‘ μμ μ’ λ₯κ° λμ¨ νμλ₯Ό ν΅ν΄ μμ κ°―μλ₯Ό ꡬνλ€.
- μμ μ’ λ₯λ₯Ό key κ°μΌλ‘νκ³ μμ μ’ λ₯κ° λμ¨ νμλ₯Ό valueλ‘ νλ HashMapμ λ§λ€λ©΄ λλ€.
-
μ¬κΈ°κΉμ§λ μ¬μ΄λ° λ¬Έμ λ μμ μ’ λ₯λ³λ‘ νλμ© μ ννλ λ°©λ²μ΄λ€.
-
λ΄κ° μλν λ°©λ²μμλ μκ° μ΄κ³Όκ° λμ λ€λ₯Έ μ¬λμ νμ΄λ₯Ό μ°Έκ³ νλ€.
-
ν΅μ¬μ
(Aμ’ λ₯ μ· κ°μ§μ + 1)*(Bμ’ λ₯ μ· κ°μ§μ + 1)*(Cμ’ λ₯ μ· κ°μ§μ + 1) - 1
μ΄λ€. -
μλ₯Ό λ€μ΄
- μμλ‘ a, b, c λΌλ μ΄λ¦μ 3κ°κ° μλ€.
- νμλ‘ e, f λΌλ μ΄λ¦μ 2κ°κ° μλ€.
- μ΄ κ²½μ°, μ’ λ₯ λΉ νλμ© μ·μ μ ννλ μ‘°ν©νλ λ°©λ²μ
(0,a,b,c) * (0,e,f)
μ΄λ€. (0
μ μ무κ²λ κ³ λ₯΄μ§ μμ κ²½μ°μ΄λ€.)- λ¬Έμ μμ
μ΅μ ν κ°μ μμμ μ μ΅λλ€.
λΌλ μ‘°κ±΄μ΄ μμΌλ―λ‘ λ λ€ κ³ λ₯΄μ§ μμ κ²½μ°(0,0
)λ λΉΌμΌνλ€. - λ°λΌμ
4*3-1
μ΄ μ΅μ’ κ²½μ°μ μκ° λλ€.
μκ° μ΄κ³Ό
-
μμ μ’ λ₯λ³ μ·μ κ°―μλ₯Ό ꡬνλ κ³Όμ μ μ΄λ»κ² ν΄μΌν μ§ λͺ°λΌμ combinations λͺ¨λμ μ΄μ©ν΄μ ꡬνλ€. μ΄λ κ² νλ ν μ€νΈμΌμ΄μ€ μ€ νλλ₯Ό μκ°μ΄κ³Όλ‘ ν΅κ³Όνμ§ λͺ»νλ€.
-
μκ³ λ¦¬μ¦ λ¬Έμ λ₯Ό ν λ combinationsλ₯Ό μ°λ©΄ κ±°μ μκ°μ΄κ³Όκ° λλ€. μ°λ©΄ μ λλκ±Έ μλ©΄μλ κΈν λλ μ°κ² λλ€. κ²°κ΅ ν릴 κ±Έ μλ©΄μλ..
from itertools import combinations
import numpy
def solution(clothes):
s = set()
d = dict()
for i in range(len(clothes)):
if clothes[i][1] not in s:
s.add(clothes[i][1])
d[clothes[i][1]] = 1
else:
d[clothes[i][1]] += 1
answer = []
for j in range(1, len(d)+1):
answer.append(list(combinations(d.values(), j)))
p = 0
for k in answer:
for i in k:
p +=numpy.prod(i)
return p
(Aμ’ λ₯ μ· κ°μ§μ + 1)*(Bμ’ λ₯ μ· κ°μ§μ + 1)*(Cμ’ λ₯ μ· κ°μ§μ + 1) - 1
λΌλ λ°©μμ μκ³ λλ κ°λ¨ν ν μ μμλ€.
def solution(clothes):
d = dict()
for i in range(len(clothes)):
if d.get(clothes[i][1]) is None:
d[clothes[i][1]] = 1
else:
d[clothes[i][1]] += 1
answer = 1
print(d.values())
for j in d.values():
answer *= (j+1)
return answer-1
- λ°°μ΄ A,B,Cμμ λ°°μ΄ λΉ μμ νλμ© μ ννλ λͺ¨λ μ‘°ν©μ ꡬνλ κ²½μ°μ μλ
(A+1) * (B+1) * (C+1)
μ΄λ€.