๐ŸŒฑ → ๐ŸŒณ

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜์ƒ - python ๋ณธ๋ฌธ

Algorithms

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜์ƒ - python

BAY 2023. 10. 30. 15:55
728x90

์„ค๊ณ„

์ข…๋ฅ˜๋ฅผ key, ์ข…๋ฅ˜๋งˆ๋‹ค ์˜์ƒ์˜ ๊ฐฏ์ˆ˜๋ฅผ value๋กœ ๋„ฃ์Œ

1๊ฐœ, 2๊ฐœ, 3๊ฐœ … n๊ฐœ ์ž…์„ ์ˆ˜ ์žˆ์Œ

์˜ˆ) 2๊ฐœ ์ž…๋Š” ๊ฒฝ์šฐ key ์ค‘์— 2๊ฐœ๋ฅผ ๋ฝ‘์•„ ๋‚ด์„œ value ๊ณฑํ•˜๋ฉด ๋จ

์ด๋Ÿฐ์‹์œผ๋กœ 1,2,3 .. n๊ฐœ๊นŒ์ง€์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋‹ค ๋”ํ•˜๋ฉด ๋‹ต์ž„

์ฝ”๋“œ

from itertools import combinations

def solution(clothes):
    answer = 1
    dict = {}
    for i in clothes:
        if i[1] not in dict:
            dict[i[1]] = 1
        else:
            dict[i[1]] += 1
    
    for i in range(1,len(dict)+1):
        for j in list(combinations(dict, i)):
            tmp = 1
            for k in j:
                tmp *= dict[k]
            answer += tmp
    return answer-1

1๋ฒˆํ…Œ์ผ€๋งŒ ํ‹€๋ฆผ

1๋ฒˆ์ด ๋ชจ๋“  ์˜์ƒ์˜ ์ข…๋ฅ˜์™€ ์ด๋ฆ„์ด ๋‹ค๋ฅธ ๊ฒฝ์šฐ์ธ๋“ฏ

์˜์ƒ์˜ ์ˆ˜ ≤ 30 ์ด๋ฏ€๋กœ, ์ตœ๋Œ€ 30์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ

์‹œ๊ฐ„๋ณต์žก๋„ ๊ณ„์‚ฐํ•ด๋ณด๋ฉด 30 * 30!/r!(30-r)! * 30 * 30 ์ธ๋ฐ ์ด๊ฒŒ 1์–ต์ด ๋„˜๋‚˜ ?

์Œ ๊ทธ๋ ‡๊ตฌ๋‚˜

์กฐํ•ฉ์„ ์“ฐ๋ฉด ๋ฌด์กฐ๊ฑด ์•ˆ๋˜๊ฒ ๋‹ค . . .

 

์ •๋‹ต์ฝ”๋“œ

def solution(clothes):
    answer = 1
    dict = {}
    for i in clothes:
        if i[1] not in dict:
            dict[i[1]] = 1
        else:
            dict[i[1]] += 1
    
    for i in dict.values():
        answer *= (i+1)
    return answer-1
  1. ์˜์ƒ์˜ ์ข…๋ฅ˜๊ฐ€ "1๊ฐ€์ง€"์ธ ๊ฒฝ์šฐ. ( ์˜์ƒ A๊ฐ€ a ๊ฐœ ) a ๊ฐœ์˜ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅ
  2. ์˜์ƒ์˜ ์ข…๋ฅ˜๊ฐ€ "2๊ฐ€์ง€"์ธ ๊ฒฝ์šฐ. ( ์˜์ƒ A a๊ฐœ, ์˜์ƒ B, b๊ฐœ ) ์˜์ƒ A, B๋ฅผ ํ•œ๊ฐ€์ง€ ์”ฉ ์ž…๋Š” ๊ฒฝ์šฐ a, b ์˜์ƒ A B๋ฅผ ์„ž์–ด ์ž…๋Š” ๊ฒฝ์šฐ ab a + b + ab ๊ฐœ์˜ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅ
  3. ์˜์ƒ์˜ ์ข…๋ฅ˜๊ฐ€ "3๊ฐ€์ง€"์ธ ๊ฒฝ์šฐ. ( ์˜์ƒ A a๊ฐœ, ์˜์ƒ B, b๊ฐœ, ์˜์ƒ C c๊ฐœ) ์˜์ƒ A, B, C๋ฅผ ํ•œ๊ฐ€์ง€ ์”ฉ : a, b, c ์˜์ƒ A B / A C / B C 2์ข…๋ฅ˜์”ฉ : ab, ac, bc ์˜์ƒ A B C๋ฅผ ์„ž์–ด ์ž…๋Š” ๊ฒฝ์šฐ : abc a + b + c + ab + ac + bc + abc๊ฐœ์˜ ์กฐํ•ฉ์ด ๊ฐ€๋Šฅ

์ด ๊ฒƒ์„ ๊ณต์‹์œผ๋กœ ๋งŒ๋“ค๋ฉด

: (1๋ฒˆ ์ข…๋ฅ˜์˜ ์ˆ˜ + 1 )(2๋ฒˆ ์ข…๋ฅ˜์˜ ์ˆ˜ + 1) ...(n๋ฒˆ ์ข…๋ฅ˜์˜ ์ˆ˜ + 1) - 1

์˜ท์˜ ์ข…๋ฅ˜ 1๊ฐœ : ( a + 1 ) - 1 = a + 1 - 1

์˜ท์˜ ์ข…๋ฅ˜ 2๊ฐœ : (a + 1)(b + 1) - 1 = ab + a + b + 1 - 1

์˜ท์˜ ์ข…๋ฅ˜ 3๊ฐœ : (a + 1)(b + 1)(c + 1) - 1 = abc + ab + ac + bc + a + b + c + 1 - 1

์–ด๋ ค์› ๋˜ ์ 

์ด๊ฒŒ ์ˆ˜ํ•™๋ฌธ์ œ์—ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ์—ฌ ..

728x90