January 2nd, 2020
ํ๋ก๊ทธ๋๋จธ์ค์์ ์ฃผ๋ก ์์ฃผํ๊ณ ๋ฌธ์ ๋ฅผ ํ๋ค๊ฐ leetcode์ ๋ฌธ์ ๋ค์ ๋งค์ผ ์ ์ํ๊ณ ํธ๋ ์นดํก๋ฐฉ์ ๋ค์ด์จ ๊น์ ํ์ด๋ฅผ ์จ๋ณด๋ ค๊ณ ํด์. ๊พธ์คํ์ผ๋ฉด ์ข๊ฒ ์ด์!
๊ฐ์ด ๋ชจ๋ ๋ค๋ฅธ ๋ฐฐ์ด์ ๋ชจ๋ ๋ถ๋ถ ์งํฉ์ ๋๋ ค์ฃผ๋ method๋ฅผ ์์ฑํ๋ ๋ฌธ์ ์์.
python์๋ itertools
์์ combinations
๋ฅผ ์ฌ์ฉํด์ ํธ๋ ๋ฐฉ๋ฒ์ ์ ์ผ ๋จผ์ ๋ ์ฌ๋ ธ๊ณ ,
์์ฑํ ์ฝ๋๊ฐ ํต๊ณผํ์ด์. ๊ทธ๋ฐ๋ฐ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋ต์ ๋ณด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์์ ๋ต๋ค์ด ๋ง์์
reduce
๋ง ์ฌ์ฉํ์ด์. ๋๋ถ์ ์ ์ฒด 4์ค ์ง๋ฆฌ ์ฝ๋๋ก ํต๊ณผํ์ด์.
from functools import reduce
class Solution:
def subsets(self, nums: List[int]) -> List[List[int]]:
return reduce(lambda x, y: x + [i + [y] for i in x], nums, [[]])
์ฑ๋ฅ์์๋ ํฐ ์ฐจ์ด๊ฐ ์์์ด์.