코딩테스트 파이썬/파이썬 프로그래머스 2단계
메뉴 리뉴얼
세용용용용
2023. 6. 3. 20:18




나의 코드
from itertools import permutations
from collections import Counter
def solution(orders, course):
answer = []
for i in course:
cos_list = []
for j in orders:
b=set()
for k in permutations(j, i):
b.add(tuple(sorted(k)))
for _ in b:
cos_list.append(_)
#print(b)
result = Counter(cos_list)
result = dict(sorted(result.items(), key=lambda x :x[1], reverse=True))
#print(result)
#print(max(result.values()))
for key, value in result.items():
if value == max(result.values()) and value!=1:
answer.append(''.join(key))
else:
break
answer.sort()
print(answer)
return answer
solution(["ABCDE", "AB", "CD", "ADE", "XYZ", "XYZ", "ACD"],
[2,3,5])

와 이제는 뭐 시간복잡도 안걸리는게 없다 ㅋㅋㅋㅋㅋㅋ
수정코드
from itertools import combinations
from collections import Counter
def solution(orders, course):
answer = []
for i in course:
cos_list = []
for j in orders:
b=set()
for k in combinations(j, i):
cos_list.append(''.join(sorted(k)))
#print(b)
result = Counter(cos_list)
print(result)
result = dict(sorted(result.items(), key=lambda x :x[1], reverse=True))
#print(result)
#print(max(result.values()))
for key, value in result.items():
if value == max(result.values()) and value!=1:
answer.append(''.join(key))
else:
break
answer.sort()
print(answer)
return answer
solution(["XYZ", "XWY", "WXA"],
[2,3,4])
ㅋㅋㅋㅋㅋ 아 콤비네이션 처음알았다 하...
오늘도 배워가요.ㅎㅎ.ㅎ.ㅎ.ㅎㅎ.ㅎ.ㅎㅎ.ㅎㅎㅎㅎ 하 ㅅ...