순열 2

[완전탐색] 알고리즘 - 완전탐색(Brute Force)

완전 탐색 (Brute Force) 가능한 모든 경우의 수를 탐색하면서 요구 조건에 충족되는 결과를 가져오는 알고리즘 이다. 해가 존재한다는 가정을 세우고 완전 탐색하기 때문에 무조건 정답을 찾을 수 있다. 복잡한 알고리즘을 생각하지 않고 모든 경우를 단순히 살펴본다고 볼 수 있다. 완전 탐색 알고리즘을 풀 때는 탐색해야할 전체 데이터 개수가 100만개 이하일 때 완전 탐색을 사용해야한다. 완전 탐색 종류 1. 선형 구조를 전체 탐색하는 순차 탐색 2. 비선형 구조를 전체 탐색하는 DFS(깊이 우선 탐색), BFS(너비 우선 탐색) 사용 조건 1. 문제에 대한 해결책이 잘 정의 되어 있어야 한다. - 해결책이 정의되어 있어야 브루트 포스를 사용한 해결책이 올바른 방법인지 확인할 수 있다. 2. 문제를 해..

알고리즘/개념 2023.08.03

프로그래머스[2021 KAKAO BLIND RECRUITMENT] 메뉴 리뉴얼 by 파이썬 (python)

https://school.programmers.co.kr/learn/courses/30/lessons/72411 난이도 LV.2 문제 이해 1. 코스요리를 구성하는 단품메뉴 갯수가 담긴 course로 코스요리를 분류하기. 2. 최소 2명 이상의 손님으로부터 주문된 단품 메뉴 조합에 대해서만 코스요리 메뉴 후보에 포함. 3. 각 갯수에 따른 코스요리별 가장 많이 주문된 메뉴구성이 해당 코스 요리로 선정된다. ㄴ 만약 가장 많이 주문된 메뉴구성이 여러개 ( 횟수 동일) 하다면 모두 코스요리 선정 접근법 1. 파이썬의 itertools를 이용해 조합(combinations)을 사용하여 주문된 단품메뉴로 만들 수 있는 모든 코스 요리 만들기. 2. 파이썬의 Counter을 사용해 중복된 데이터가 저장된 배열이..