πŸ’»μ½”λ”©ν…ŒμŠ€νŠΈ λ¬Έμ œν’€μ΄10

μ§€λ―Όμ„œΒ·2023λ…„ 3μ›” 13일
0

coding test

λͺ©λ‘ 보기
10/30

Chapter9. ν•΄μ‹œ

[문제35] μœ„μž₯ - Level2

μŠ€νŒŒμ΄λ“€μ€ 맀일 λ‹€λ₯Έ μ˜·μ„ μ‘°ν•©ν•˜μ—¬ μž…μ–΄ μžμ‹ μ„ μœ„μž₯ν•©λ‹ˆλ‹€.

예λ₯Ό λ“€μ–΄ μŠ€νŒŒμ΄κ°€ 가진 옷이 μ•„λž˜μ™€ κ°™κ³  였늘 μŠ€νŒŒμ΄κ°€ λ™κ·Έλž€ μ•ˆκ²½, κΈ΄ μ½”νŠΈ, νŒŒλž€μƒ‰ ν‹°μ…”μΈ λ₯Ό μž…μ—ˆλ‹€λ©΄ λ‹€μŒ 날은 청바지λ₯Ό μΆ”κ°€λ‘œ μž…κ±°λ‚˜ λ™κ·Έλž€ μ•ˆκ²½ λŒ€μ‹  κ²€μ • μ„ κΈ€λΌμŠ€λ₯Ό μ°©μš©ν•˜κ±°λ‚˜ ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ’…λ₯˜μ΄λ¦„
μ–Όκ΅΄λ™κ·Έλž€ μ•ˆκ²½, κ²€μ • μ„ κΈ€λΌμŠ€
μƒμ˜νŒŒλž€μƒ‰ ν‹°μ…”μΈ 
ν•˜μ˜μ²­λ°”μ§€
κ²‰μ˜·κΈ΄ μ½”νŠΈ

μŠ€νŒŒμ΄κ°€ 가진 μ˜μƒλ“€μ΄ λ‹΄κΈ΄ 2차원 λ°°μ—΄ clothesκ°€ μ£Όμ–΄μ§ˆ λ•Œ μ„œλ‘œ λ‹€λ₯Έ 옷의 μ‘°ν•©μ˜ 수λ₯Ό returnν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μž‘μ„±ν•΄μ£Όμ„Έμš”.

[μ œν•œμ‚¬ν•­]

  • clothes의 각 행은 <μ˜μƒμ˜ 이름, μ˜μƒμ˜ μ’…λ₯˜>둜 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • μŠ€νŒŒμ΄κ°€ 가진 μ˜μƒμ˜ μˆ˜λŠ” 1개 이상 30개 μ΄ν•˜μž…λ‹ˆλ‹€.
  • 같은 이름을 가진 μ˜μƒμ€ μ‘΄μž¬ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
  • clothes의 λͺ¨λ“  μ›μ†ŒλŠ” λ¬Έμžμ—΄λ‘œ 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • λͺ¨λ“  λ¬Έμžμ—΄μ˜ κΈΈμ΄λŠ” 1 이상 20 μ΄ν•˜μΈ μžμ—°μˆ˜μ΄κ³  μ•ŒνŒŒλ²³ μ†Œλ¬Έμž λ˜λŠ” '-'둜만 이루어져 μžˆμŠ΅λ‹ˆλ‹€.
  • μŠ€νŒŒμ΄λŠ” ν•˜λ£¨μ— μ΅œμ†Œ ν•œ 개의 μ˜μƒμ€ μž…μŠ΅λ‹ˆλ‹€.

[μ½”λ“œμž‘μ„±]

  • 경우의 수λ₯Ό κ³±ν•˜κΈ° μœ„ν•΄ λ³€μˆ˜ μ΄ˆκΈ°ν™”λ₯Ό 진행
def solution(clothes):
	answer = 1
    cloth_type = {}
  • 받은 μ˜·μ„ μ’…λ₯˜λ³„λ‘œ κ΅¬λΆ„ν•˜μ—¬ ν•΄μ‹œ ν…Œμ΄λΈ”μ„ μž‘μ„±
for cloth, type in clothes:
	cloth_type[type] = cloth_type.get(type, 0) + 1
  • ν•΄μ‹œ ν…Œμ΄λΈ”μ— μ‘΄μž¬ν•˜λŠ” 옷의 μ’…λ₯˜*(κ°€μ§“μˆ˜+1)둜 κ³±μ…ˆμ„ 진행 -> 이 값에 -1ν•˜μ—¬ 좜λ ₯
for type in cloth_type:
	answer *= (cloth_type[type]+1)
    
return answer - 1

[μ „μ²΄μ½”λ“œ]

def solution(clothes):
	answer = 1
    	cloth_type = {}
    for cloth, type in clothes:
		cloth_type[type] = cloth_type.get(type, 0) + 1
    
    for type in cloth_type:
		answer *= (cloth_type[type]+1)
    
	return answer - 1
profile
πŸ’» + πŸŽ₯

0개의 λŒ“κΈ€