λ°±μ€€ & ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€/Hash

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Hash level2 μœ„μž₯

_cactus 2022. 3. 25. 20:30
λ°˜μ‘ν˜•

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ μ½”λ”©μ—°μŠ΅ 쀑 level2의 hash μΉ΄ν…Œκ³ λ¦¬μ˜ "μœ„μž₯" 문제 풀이

(문제 : μ•„λž˜ λ§ν¬πŸ‘‡πŸ‘‡πŸ‘‡)

 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”.

programmers.co.kr

 

λ¬Έμ œν’€μ΄

옷 μ’…λ₯˜λ³„λ‘œ μ˜·λ“€μ΄ 있고 μŠ€νŒŒμ΄λŠ” μ—¬λŸ¬ 옷 μΉ΄ν…Œκ³ λ¦¬μ—μ„œ 옷 ν•˜λ‚˜μ”©μ„ κΊΌλ‚΄ μž…λŠ”λ‹€. μ΄λ•Œ κ°€λŠ₯ν•œ 경우의 수λ₯Ό κ΅¬ν•˜λ©΄ λœλ‹€.

μ£Όμ˜μ‚¬ν•­μ΄ μžˆλ‹€ν•˜λ©΄

  1. λͺ¨λ“  옷 μΉ΄ν…Œκ³ λ¦¬μ•ˆμ—μ„œ λ°˜λ“œμ‹œ μ˜·μ„ κΊΌλ‚΄μž…μ–΄μ•Όν•˜λŠ” 것은 μ•„λ‹ˆλ‹€.
  2. ν•œ μΉ΄ν…Œκ³ λ¦¬μ•ˆμ—μ„œλŠ” λ°˜λ“œμ‹œ ν•œλ²Œμ˜ 옷만 κ³ λ₯Ό 수 μžˆλ‹€. 같은 μ’…λ₯˜μ˜ μ—¬λŸ¬ μ˜·μ„ μž…μ„ 수 μ—†λ‹€. 
λ°˜μ‘ν˜•

예λ₯Ό λ“€μ–΄, λͺ¨μž: [μΊ‘,λΉ„λ‹ˆ], μƒμ˜: [ν‹°μ…”μΈ ,λ‹ˆνŠΈ] μ΄λ ‡κ²Œ μžˆλ‹€κ³  ν• λ•Œ, 

  1. μƒμ˜λŠ” μž…μ§€ μ•Šκ³  λͺ¨μžλ§Œ μ“Έ 수 μžˆλ‹€. λ°˜λ“œμ‹œ λͺ¨μž, μƒμ˜ λ‘˜ λ‹€ μž…μ–΄μ•Ό ν•˜λŠ” 것은 μ•„λ‹ˆλ‹€.
  2. λͺ¨μž μΉ΄ν…Œκ³ λ¦¬μ˜ μΊ‘κ³Ό λΉ„λ‹ˆ λ‘˜ λ‹€λ₯Ό μ°©μš©ν•  μˆ˜λŠ” μ—†λ‹€. λ°˜λ“œμ‹œ λͺ¨μž μΉ΄ν…Œκ³ λ¦¬μ—μ„œλŠ” μΊ‘/λΉ„λ‹ˆ λ‘˜ 쀑 ν•˜λ‚˜λ§Œ μž…μ„ 수 μžˆλ‹€. 

μˆ˜ν•™μ μœΌλ‘œ 생각해보면 combination을 λ– μ˜¬λ¦΄ 수 μžˆλ‹€.

μΉ΄ν…Œκ³ λ¦¬λ³„λ‘œ μ˜·μ„ ν•œ 벌 κ³ λ₯Ό 경우의 수λ₯Ό λͺ¨λ‘ κ³±ν•˜κ³  λ§ˆμ§€λ§‰μ— 아무것도 κ³ λ₯΄μ§€ μ•Šμ€ 경우(1)을 λΊ΄μ£Όλ©΄ λœλ‹€.

예λ₯Ό λ“€μ–΄ λͺ¨μž: [μΊ‘,λΉ„λ‹ˆ], μƒμ˜: [ν‹°μ…”μΈ ,λ‹ˆνŠΈ,λΈ”λΌμš°μŠ€] 일 λ•Œ,

( 2C1 x 3C1 ) - 1 = 5

닡은 5κ°€ λœλ‹€.

 

이λ₯Ό μ½”λ“œλ₯Ό μž‘μ„±ν•΄λ³Έλ‹€.

####### μ •ν™•μ„± 100% #######
def solution(clothes):
    dic = {}
    for cloth,cat in clothes :
        if cat in dic :
            dic[cat] += 1
        else :
            dic[cat] = 2
    cnt = 1
    for v in dic.values() :
        cnt *= v
    return cnt - 1

 

λ‚΄κ°€ μ œμ‹œν•œ λ¬Έμ œν’€μ΄ 방식과 μ½”λ“œκ°€ 도움이 됐기λ₯Ό λ°”λΌλ©΄μ„œ..!! λ§ˆμΉœλ‹€ 😊

728x90
λ°˜μ‘ν˜•