[LeetCode] 1079. Letter Tile Possibilities
Updated:
1079. Letter Tile Possibilities
์ ์์์ฒ๋ผ AAB ๊ฐ ์ฃผ์ด์ง๋ค๋ฉด ๋ง๋ค ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ฐ์ง๋ฉด ๋๋ค.
์กฐํฉ์ AB, BA ๋ฅผ ๊ฐ์ ๊ฒฝ์ฐ๋ก ๋ณด๊ณ ์์ด์ AB, BA ๋ฅผ ๋ค๋ฅธ ๊ฒฝ์ฐ๋ก ๋ณธ๋ค.
์ฐ์ ์กฐํฉ์ผ๋ก ๊ฒฝ์ฐ๋ฅผ ๋ฐ์ง ๋ค ๊ทธ ๊ฒฝ์ฐ๋ง๋ค ์์ด์ ๋ง๋ค๋ฉด ๋๋ค.
[A, B, AA, AB, AAB] ์ ๋ํด ๊ฐ๊ฐ ์์ด์ ๊ตฌํ๋ฉด ๋ต์ ๊ตฌํ ์ ์๋ค.
A โย A
B โ B
AA โ AA
AB โ AB, BA
AAB โ AAB, ABA, BAA
ํ์ง๋ง ์ฐ๋ฆฌ๋ ๋ง๋ค ์ ์๋ ๋ฌธ์์ด์ ๋ฐ์ง๋ ๊ฒ ์ด๊ธฐ ๋๋ฌธ์ index 0 ์ ์๋ A ์ index 1 ์ ์๋ A ๋ฅผ ๊ฐ๊ฒ ๋ด์ผํ๋ค.
8 ๋ฒ์งธ ์ค์ด๋ 10 ๋ฒ์งธ ์ค์ set ์ผ๋ก ๋ฐ์ ์ฒ์๋ถํฐ ์ค๋ณต์ ์ง์๋ ๋๊ธด ํ์ง๋ง ๊ทธ๋ฌ๊ธฐ๋ณด๋ค
๋ง์ง๋ง ์ฐ์ฐ ํ answer ๋ฅผ set ์ผ๋ก ๋ฐ๊ฟ ์ค๋ณต์ ์ง์ฐ๋ฉด ์กฐ๊ธ์ด๋ผ๋ ๋น ๋ฅด๊ฒ ํ ์ ์๋ค.
import itertools
class Solution:
def numTilePossibilities(self, tiles: str) -> int:
answer = []
for i in range(1, len(tiles) + 1):
_set = itertools.combinations(tiles, i)
for j in _set:
answer += itertools.permutations(j)
return len(set(answer))
test = Solution()
tiles = 'JDNSJEK'
print(test.numTilePossibilities(tiles))
Leave a comment