ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฉ๋ด ๋ฆฌ๋ด์ผ ํ์ด์ฌ
2021. 8. 29. 21:25ใ๐ฑ Algorithm
๐ป ์ฝ๋
from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
for n in course: # ์๊ฐ ๋จผ์ ๋์์ผ ํ๋ ์ด์ ๋, ๊ฐฏ์๋ณ ์ต๊ฐ์๋ฅผ ๋จผ์ ๊ณจ๋ผ๋ด์ผํ๊ธฐ ๋๋ฌธ
temp = []
for order in orders:
for combination in combinations(order, n):
temp.append(''.join(sorted(combination)))
menu = Counter(temp)
try:
maximum = max(Counter(temp).values())
except ValueError:
pass
for key, value in menu.items():
if value == maximum and maximum > 1:
answer.append(key)
answer.sort()
return answer
โ ํค ํฌ์ธํธ
1. combinations() ์ Counter() ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. (๋ฌผ๋ก ๋ค๋ฅธ ํ์ด๋ ์กด์ฌํ๋ฏ๋ก ํ์๋ ์๋๋ค)
2. course ๋ด๋ถ ์์๋ค์ ๊ธฐ์ค์ผ๋ก orders ๋ฅผ ์ ๋ณํด์ผํ๋ค. ์ฆ ๋ชจ๋ ๊ฐฏ์๋ง๋ค ๋ถ๋ฅํ๋ ๊ฒ์ด ์๋๊ณ , course ๋ด๋ถ ์์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๊ทผํ๋ค.
3. ๊ฐ ์กฐํฉ๋ง๋ค ์ค๋ฆ์ฐจ์ ์ ๋ ฌ์ ํด์ฃผ์ด์ผ ํ๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๊ฐ๋ณ ์ผ์ด์ค๊ฐ ์๊ฒจ๋ฒ๋ ค ์ ๋๋ก ์นด์ดํ ์ ํ ์ ์๋ค.
4. ๋๋ฒ ์ด์ ์ ํ๋ ๋ฉ๋ด๋ง ๊ฒฐ๊ณผ๊ฐ์ ๋ค์ด๊ฐ๋ ์กฐ๊ฑด์ ์์ง๋ง์.
'๐ฑ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ์ฟผ๋์์ถ ํ ๊ฐ์ ์ธ๊ธฐ ํ์ด์ฌ (0) | 2021.08.31 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฉ๋ฌธ๊ธธ์ด ํ์ด์ฌ (0) | 2021.08.29 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ ํ์ด์ฌ (0) | 2021.08.03 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ๋ฐฐ๋ฌ ํ์ด์ฌ (0) | 2021.07.28 |
ํ๋ก๊ทธ๋๋จธ์ค [lv2] ํ์ผ๋ช ์ ๋ ฌ ํ์ด์ฌ (0) | 2021.07.25 |