[BOJ/백준] 19942. 다이어트
출처
https://www.acmicpc.net/problem/19942
과정
- 5개의 값을 받아야 하니 각각의 이름으로 구조체를 만들어 주었다.
- 모든 조합을 짜야하므로 dfs 함수를 만들어 주었다.
-
idx가 모든 조합의 갯수(v.size)가 된다면 현재 조합의 단백질, 탄수화물, 지방, 비타민의 합을 구해준다.
-
각각의 단백질, 탄수화물, 지방, 비타민의 합이 조건에 부합한다면
현재 재료 조합의 가격을 구해주고 현재 조합을 벡터에 넣어준다. -
현재 재료의 조합의 가격이 res에 있는 값 보다 작거나
현재 값과 같은데 사전 순으로 빠르다면 res값 과 조합 벡터 값을 갱신 해준다.
(벡터크기 비교로 사전 순을 비교 해줄 수 있다.) -
dat배열에 1을 넣고 dfs를 돌리고 0으로 만들어주고 dfs를 돌리면 모든 조합을 만들어줄 수 있다.
- 결과 값으로 res값이 1e9 그대로 라면 -1을 출력해주고
그게 아니라면 res값과 최소 조합의 경우를 출력해준다.