알고리즘 오답노트 04

박경준·2021년 6월 12일
0

알고리즘 문제풀이

목록 보기
5/24

배민 메뉴 주문하기

  • 이진탐색보다 if ~ in ~으로 포함 여부만 확인하는것이 더 효율적일수도 있다. (단, 배열을 집합화 했을때에만...)
shop_menus = ["만두", "떡볶이", "오뎅", "사이다", "콜라"]
shop_orders = ["오뎅", "콜라", "만두"]


def is_available_to_order(menus, orders):
  for order in orders:
    if not order in set(menus): 
      # 굳이 집합을 사용하는 이유: 내부적으로 hash를 통해서 자료들을 저장하기 때문에 시간복잡도가 O(1)이 가능하고 해시가 성능이 떨어졌을(충돌이 많은 경우) 때 O(n) 발생.
      return False
  else:
    return True


result = is_available_to_order(shop_menus, shop_orders)
print(result)
profile
빠굥

0개의 댓글