본문 바로가기

전체 글

(171)
[프로그래머스][2021 KAKAO BLIND RECRUITMENT][Python] 메뉴 리뉴얼 문제를 정리해보자. 이전에 각 손님이 주문할 때 가장 많이 함께 주문했던 단품 메뉴들을 코스요리 메뉴로 구성한다. 1) 코스요리 메뉴는 최소 2가지 이상의 단품 메뉴로 구성된다. 2) 최소 2명 이상의 손님으로부터 주문된 단품 메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함한다. 입출력 1. orders: 각 손님이 주문한 단품 메뉴들이 문자열 형식으로 담긴 배열 2. course: "스카피"가 추가하고 싶어하는 코스요리를 구성하는 단품 메뉴들의 개수가 담긴 배열 풀이를 생각해보자. 첫 번째 예로 생각해보자. ABCFG로 만들 수 있는 2, 3, 4개 코스의 후보는 아래와 같다. 이렇게 orders의 메뉴 구성마다 N개 코스의 후보를 구한다. 최종적으로 N개 코스마다 가장 많이 주문된 후보가 정답이다. ..
[회고] 3월 4일 보호되어 있는 글입니다.
[이진탐색] 하한선[Lower bound], 상한선[Upper bound] 개념 이진탐색의 상한선, 하한선은 이진탐색 알고리즘에서 약간 변경된 것이다. 중복된 자료가 있을 때 유용하게 사용된다. 1. 하한선[Lower bound] 데이터내에서 원하는 값보다 '같거나 큰 값' 중에 가장 앞에 있는 원소의 위치를 리턴한다. 위 이미지에서 lower_bound(3)은 index 3이다. 2. 상한선[Upper bound] 데이터내에서 원하는 값보다 '큰 값' 중에 가장 앞에 있는 원소의 위치를 리턴한다. 위 이미지에서 upper_bound(3)은 index 6이다. + 만약 모든 데이터가 원하는 값보다 작을 경우? 데이터 범위밖의 값을 리턴해야 한다. 그래서 일반적인 이분탐색과 달리 high를 len(array)-1이 아니라 len(array)로 한다. ​구현 # 이진탐색 def b..