2021 KAKAO BLIND : 메뉴 리뉴얼 (프로그래머스)
2021. 2. 5. 10:13ㆍ코딩테스트
728x90
반응형
programmers.co.kr/learn/courses/30/lessons/72411?language=python3
다른 사람들 코드는 라이브러리 사용한게 많아서 라이브러리 안쓴 코드 공유드려요
def solution(orders, course):
answer = []
dictlist = {}
for i in course:
dictlist[i] = {}
def comb(s, n, res):
l = len(res)
if n == len(s):
if l in course:
d = dictlist[l]
if res in d:
d[res] += 1
else:
d[res] = 1
return
else:
comb(s, n+1, res)
res += s[n]
comb(s, n+1, res)
for i in orders:
comb(sorted(i), 0, '')
for i in dictlist.values():
if i:
answer+= [key for key in i.keys() if i[key] == max(i.values()) and i[key] != 1]
return sorted(answer)
comb함수 부분이 itertools.combinations를 백트래킹으로 직접 구현한거구요
dictlist로 구현한 부분은 collections를 잘 쓰면 더 쉽게 처리가 가능하더라구요
라이브러리써서 잘 푼 코드는 프로그래머스에서 다른 사람 코드보면 잘 나와있으니까 생략할께요
두 방법으로 다 풀어보는게 좋은것같아요
공식해설은 아래에 있습니다
tech.kakao.com/2021/01/25/2021-kakao-recruitment-round-1/
프로그래머스 2021 KAKAO BLIND RECRUITMENT 메뉴 리뉴얼 파이썬 python 카카오 신입공채 온라인 코딩 테스트
'코딩테스트' 카테고리의 다른 글
2021 KAKAO BLIND : 카드 짝 맞추기 (프로그래머스) (1) | 2021.02.23 |
---|---|
2020 카카오 인턴십: 경주로 건설 (프로그래머스) (0) | 2021.02.15 |
2021 KAKAO BLIND : 합승 택시 요금 (프로그래머스) (0) | 2021.02.15 |