๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Developer/๐ŸŸ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/python] ์œ„์žฅ

์œ„์žฅ

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

 

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

 

programmers.co.kr

 


๋ฌธ์ œ ์„ค๋ช…

์ŠคํŒŒ์ด๋“ค์€ ๋งค์ผ ๋‹ค๋ฅธ ์˜ท์„ ์กฐํ•ฉํ•˜์—ฌ ์ž…์–ด ์ž์‹ ์„ ์œ„์žฅํ•ฉ๋‹ˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด ์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜ท์ด ์•„๋ž˜์™€ ๊ฐ™๊ณ  ์˜ค๋Š˜ ์ŠคํŒŒ์ด๊ฐ€ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ, ๊ธด ์ฝ”ํŠธ, ํŒŒ๋ž€์ƒ‰ ํ‹ฐ์…”์ธ ๋ฅผ ์ž…์—ˆ๋‹ค๋ฉด ๋‹ค์Œ๋‚ ์€ ์ฒญ๋ฐ”์ง€๋ฅผ ์ถ”๊ฐ€๋กœ ์ž…๊ฑฐ๋‚˜ ๋™๊ทธ๋ž€ ์•ˆ๊ฒฝ ๋Œ€์‹  ๊ฒ€์ • ์„ ๊ธ€๋ผ์Šค๋ฅผ ์ฐฉ์šฉํ•˜๊ฑฐ๋‚˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์ŠคํŒŒ์ด๊ฐ€ ๊ฐ€์ง„ ์˜์ƒ๋“ค์ด ๋‹ด๊ธด 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

 


ํ’€์ด ๊ณผ์ •

 

๋ถ„๋ฅ˜๊ฐ€ a, b, c ๊ฐ€ ์žˆ์„ ๋•Œ ํ’€์ด ๊ณผ์ •์€ ๋‹ค์Œ ๊ณต์‹๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

( a๋ถ„๋ฅ˜์ธ ์›์†Œ ๊ฐœ์ˆ˜ + 1 )*( b๋ถ„๋ฅ˜์ธ ์›์†Œ ๊ฐœ์ˆ˜ + 1 )*( c๋ถ„๋ฅ˜์ธ ์›์†Œ ๊ฐœ์ˆ˜ + 1 )

 

์˜ˆ๋ฅผ ๋“ค์–ด

 

๋ถ„๋ฅ˜์˜ ์ข…๋ฅ˜๊ฐ€ 'fruit' ์™€ 'animal' ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค.

 

'fruit' ์˜ ์›์†Œ๋Š” 'apple', 'banana', 'melon'์ด ์žˆ๊ณ 

 

'animal' ์˜ ์›์†Œ๋Š” 'rabbit', 'tiger'๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 

 

apple

banana

melon

rabbit

tiger

apple, rabbit

apple, tiger

banana, rabbit

banana, tiger

melon, rabbit

melon, tiger

 

์ด 11๊ฐ€์ง€์ž…๋‹ˆ๋‹ค.

 

์ด๋ฒˆ์—๋Š” fruit์˜ ์›์†Œ๊ฐ€ 3๊ฐœ์ด๊ณ  animal์˜ ์›์†Œ๊ฐ€ 2๊ฐœ์ผ๋•Œ ๋ชจ๋“  ๋ถ„๋ฅ˜๋ฅผ 1๊ฐœ์”ฉ๋งŒ ํฌํ•จ๋˜๋„๋ก ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 3 * 2 ์ž…๋‹ˆ๋‹ค.

 

apple, rabbit

apple, tiger

banana, rabbit

banana, tiger

melon, rabbit

melon, tiger

 

์ด๋ฒˆ์—๋Š” ๋ชจ๋“  ๋ถ„๋ฅ˜์— x ์›์†Œ ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด๋ด…์‹œ๋‹ค.

 

๊ทธ๋Ÿฌ๋ฉด fruit์˜ ์›์†Œ๋Š” ['apple', 'banana', 'melon', 'X'] ์ด๊ณ ,

 

animal์˜ ์›์†Œ๋Š” ['rabbit', 'tiger', 'X'] ์ž…๋‹ˆ๋‹ค.

 

๊ฐ™์€ ์›๋ฆฌ๋กœ ๋ชจ๋“  ๋ถ„๋ฅ˜๋ฅผ 1๊ฐœ์”ฉ๋งŒ ํฌํ•จ๋˜๋„๋ก ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š” 4 * 3 ์ด ๋ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

 

apple, rabbit

apple, tiger

apple, X

banana, rabbit

banana, tiger

banana, X

melon, rabbit

melon, tiger

melon, X

X, rabbit

X, tiger

X, X

 

์—ฌ๊ธฐ์„œ X๋ฅผ ์ œ์™ธํ•˜๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๊ตฌํ•˜๋Š” ๋‹ต์ด ๋ฉ๋‹ˆ๋‹ค.

 

๋ฌธ์ œ์—์„œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ž…์ง€ ์•Š์€ ๊ฒฝ์šฐ๋Š” ์ œ์™ธํ•˜๋ผ๊ณ  ๋ช…์‹œ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

 

๊ณต์‹์€ 4 * 3 - 1 ์ด ๋ฉ๋‹ˆ๋‹ค.

 

ํ’€์ด

 

def solution(clothes):
    dic = {}
    answer = 1
    
    for co in clothes:                      # ๋ถ„๋ฅ˜๋ฅผ ํ•˜์—ฌ ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
        if co[1] in dic.keys():
            dic[co[1]].append(co[0])

        else :
            dic[co[1]] = [co[0]]

    for d in dic.values():                  
        answer *= len(d) + 1

    return answer-1

 

 


 ์‚ฌ์šฉ๋œ ๊ฐœ๋…

 

* in ์—ฐ์‚ฐ์ž

 

* ๋”•์…”๋„ˆ๋ฆฌ์— ๋ฆฌ์ŠคํŠธ ์ถ”๊ฐ€ํ•˜๊ธฐ