자료구조와 알고리듬 With Java/[인프런] Algorithm

Chapter 08. DFS, BFS 활용

계란💕 2022. 4. 18. 18:17

1. 합이 같은 부분집합

java
열기

  Note)

  - D(L, sum) :  L(level), sum(부분집합의 총합)

  - 부분집합은 하나만 구해서 전체 집합의 total에서 sum을 뺐을 때, sum이 되면 "YES"

  - boolean flag: yes가 발견되면 return 한다.

 

 

2. 바둑이 승차 - 최대한 많이 태우려고 한다.

java
열기

  Note)

  - 부분집합이 트럭에 타는 바둑이들이라고 본다.

  - DFS(L, sum) : L() , sum(트럭에 타는 바둑이 무게)

 

 

3. 최대 점수 구하기

java
열기

  Note)

  - N: 문제 개수, M: 제한 시간

  - D(L, sum , time, arr)

  - ps: problem score

  - pt: problem time

  - 시간과 점수를 모두 누적합 시킨다.

 

 

4. 중복 순열

java
열기

  Note) 실행 결과

 

 

5. 동전 교환

 

 

 

 

  Note) 실행 결과

  - DFS(L, sum)

  - L은 동전의 개수라고 생각한다.

  - sum은 L개의 동전의 총합으로 생각할 수 있다.

  -