본문 바로가기
Algorithm/구현

[프로그래머스 lv 1] 메뉴 리뉴얼

by HANNI하니 2023. 6. 14.

사용 언어 - Python3

문제 - 메뉴 리뉴얼

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

정답

combinations, counter (정답 맞춘 여부 X)

orders에 있는 가능한 모든 조합 찾기

XY = YX 이기 때문에 정렬필요 combination(sorted(order,c))

 

가능한 모든 조합에서 해당 조합의 갯수를 Counter 모듈을 이용하여 셈

counter = Counter(temp)

 

조합의 개수가 0이거나, 해당 조합을 주문한 사람이 혼자이면 계산 X

len(counter) != 0 and max(counter.values()) != 1

주문 조합 전부 answer에 추가하기 join

from itertools import combinations
from collections import Counter

def solution(orders, course):
    answer = []
    for c in course:
        temp = []
        for order in orders:
            combi = combinations(sorted(order), c)
            temp += combi
        counter = Counter(temp)
        if len(counter) != 0 and max(counter.values()) != 1:
            answer += [''.join(f) for f in counter if counter[f] == max(counter.values())]

    return sorted(answer)

 

 

레퍼런스

  • 정답 깃허브
 

GitHub - yyeongeun/codingtest: 코딩테스트 공부

코딩테스트 공부. Contribute to yyeongeun/codingtest development by creating an account on GitHub.

github.com

 

댓글