알고리즘 TEAM 4 Term Project
[목차]
냉장고에 있는 재료를 바탕으로 메뉴를 추천해 주는 어플
Greedy
각 단계에서 현재 상황에서 가장 최적인 선택을 하는 방식으로 문제를 해결하는 알고리즘 각 단계에서 지금 당장 가장 좋아 보이는 선택을 하는 것
- 간단하고 직관적인 구현이 가능하며, 특정 문제에 대해 전역 최적해를 보장하지는 않지만, 많은 경우에 꽤 효과적으로 동작 </br
그리디 적용
가능한 모든 음식 레시피를 확인하면서 각 음식에 대한 점수를 계산하고, 계산된 점수를 비교하여 현재까지 가장 높은 점수를 가진 음식을 최적의 메뉴로 선택
유형 | 초기 알고리즘 | 프로젝트에 적용한 알고리즘 |
프로젝트 동작 구조 |
1) 사용자에게 선호하는 재료를 입력 받기 2) 각 레시피에 대해 사용자의 선호 재료에 대한 점수를 계산하고 최종 점수를 기반으로 음식을 추천 |
1) 기본적으로 제공하는 레시피와 사용자가 미리 저장한 재료 리스트를 추천 알고리즘의 인자에 전달 2) 재료의 유통기한, 양, 선호도를 바탕으로 점수를 계산하고 최종 점수를 기반으로 음식을 추천 |
가중치 부여 조건 |
- 음식 추천은 사용자가 선호하는 재료가 사용된 레시피에만 가중치를 부여하며, 사용자가 아무런 재료를 입력하지 않을 경우 모든 레시피를 대상으로 추천 - 양과 유통기한을 고려하여 각 재료에 대한 가중치를 계산 |
- 기본적으로는 양과 유통기한을 고려하여 각 재료에 대한 가중치를 계산 - 추가 가중치는 사용자가 선호하는 재료가 사용된 레시피에만 부여, 사용자가 아무런 재료를 입력하지 않을 경우 모든 레시피를 대상으로 추천 |
[초기화 부분]
설정한 재료와 해당하는 레시피(음식) |
[코드 출력 결과]
선호하는 재료를 입력하지 않았을 때 | 선호하는 재료를 입력했을 때 |
[코드 출력 결과]
선호 재료가 없을 때 | 선호 재료가 있을 때 |
[화면]
|
|||
사용자가 미리 설정한 재료 | 선호 여부 설정 | 선호 재료가 없을 때 | 선호 재료가 있을 때 |
김나현 | 박하은 | 신주환 | 이강현 |
커밋 메세지의 기본 포멧은 아래의 명세를 따릅니다.
:Emoji: <type>: <subject>
<body>
<footer>
해당 커밋은 무엇에 대한 작업인지 키워드를 통해 표시합니다.
Type | Emoji | Description |
---|---|---|
Feat | ✨(sparkles) | 새로운 기능 추가 |
Fix | 🐛 (bug) | 버그 수정 |
Docs | 📝 (memo) | 문서 수정 |
Style | 🎨 (art) | 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 |
Refactor | ♻️ (recycle) | 코드 리팩토링 |
Test | ✅ (white_check_mark) | 테스트 코드, 리팩토링 테스트 코드 추가 |
Chore | 🔧 (wrench) | 빌드 업무 수정, 패키지 매니저 수정 |