Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 회전 및 자리 이동 연산
- 프로그래머스 푸드 파이트 대회
- 원형 연결 구조 연결된 큐
- 주기억장치
- 문제해결 단계
- IPv4 주소체계
- C언어 스택 연산
- C언어 계산기 프로그램
- 값/참조/주소에 의한 전달
- l-value참조자
- LAN의 분류
- 논리 연산
- auto 키워드
- 괄호 검사 프로그램
- const화
- 문자형 배열
- r-value참조자
- 범위 기반 for문
- C언어 덱
- 프로그래머스 배열만들기4
- 유형 변환
- getline()함수
- const l-value참조자
- 네트워크 결합
- 알고리즘 조건
- string유형
- 백준 파이썬
- 입출력 관리자
- c언어 괄호검사
- 운영체제 기능
Archives
- Today
- Total
chyam
[프로그래머스 Lv2,python] - 메뉴 리뉴얼 본문

https://school.programmers.co.kr/learn/courses/30/lessons/72411
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
from itertools import combinations
def change(comb): # [('A','B'),('B','C')] 형식을 ["AB,"BC"]로 바꿔주기
li=[]
for i in comb:
li.append(''.join(i))
return li
def solution(orders, course):
res=[] # 길이별로 최대 저장
an=[] # 최종 결과
for num in course: # 길이별로 나누기
orderDic={} # 주문된 갯수 저장
ma=2 # 최대 주문 수
lis=[]
for food in orders:
food=list(food) # 정렬을 위해 list로 변환
food.sort()
comb= list(combinations(food,num)) # num만큼의 길이로 조합 구하기
li=change(comb)
for d in li: # 개수 세기
if d not in orderDic: # 딕셔너리에 저장되지않았으면 1로 초기화
orderDic[d]=1
else:
orderDic[d]+=1
for d in orderDic:
if ma<orderDic[d]: # 최대값보다 크면
ma=orderDic[d] # 갱신
lis=[] # 초기화
lis.append(d) # 추가
elif ma==orderDic[d]: # 최대랑 같으면 추가
lis.append(d)
if len(lis)>0: # 주문된게 있으면 추가해주기
res.append(lis)
for i in res: # [["AC","CD"],["DE"]] 에서 각각 뽑아서 새로운 리스트에 저장
for j in i:
an.append(j)
an.sort()
return an
'프로그래머스 > LV2' 카테고리의 다른 글
[프로그래머스 Lv2, python] - 리코쳇 로봇 (0) | 2025.03.12 |
---|---|
[프로그래머스 Lv2, python] - 무인도 여행 (0) | 2025.03.11 |
[프로그래머스 Lv2, python] - [3차] 방금그곡 (0) | 2025.03.07 |
[프로그래머스 Lv2, python] - 배달 (0) | 2025.03.06 |
[프로그래머스 Lv2, python] - 미로 탈출 (0) | 2025.03.05 |