세용용용용 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])

ㅋㅋㅋㅋㅋ 아 콤비네이션 처음알았다 하...

오늘도 배워가요.ㅎㅎ.ㅎ.ㅎ.ㅎㅎ.ㅎ.ㅎㅎ.ㅎㅎㅎㅎ 하 ㅅ...