Algogosu / algorithm-solving

알고리즘 문제풀기 스터디
0 stars 4 forks source link

Concat : Week 3 #16

Closed qus0in closed 1 month ago

qus0in commented 1 month ago

백준 퇴사

  1. 각 상담 날짜마다 상담을 할 경우와 하지 않을 경우의 최대 수익을 계산하여 메모이제이션 배열에 저장합니다.
  2. memo(i + T[i]) = max(memo(i + T[i]), memo(i) + P[i])를 사용해 상담을 하는 경우의 최대 수익을 갱신합니다.
  3. memo(i + 1) = max(memo(i + 1), memo(i))를 사용해 상담을 하지 않는 경우의 최대 수익을 갱신하여 최종 최대 수익을 구합니다.

백준 평범한 배낭

  1. 각 물품의 무게와 가치를 입력받아 DP를 위한 메모이제이션 배열을 초기화합니다. 각 물품을 고려하여 배낭의 현재 무게에서 해당 물품을 추가할 수 있는지 확인합니다.
  2. 각 물품을 배낭에 추가할 때와 추가하지 않을 때의 최대 가치를 비교하여 메모이제이션 배열을 갱신합니다. 점화식은 memo[j] = max(memo[j], memo[j - W[i]] + V[i])입니다.
  3. 최종적으로 배낭의 최대 무게 K에서 얻을 수 있는 최대 가치를 메모이제이션 배열에서 찾아 출력합니다.

LeetCode 746. Min Cost Climbing Stairs

  1. 계단 수가 2개인 경우, 두 계단 중 더 작은 비용을 반환합니다.
  2. DP 배열을 초기화하여 첫 번째 계단부터 마지막 계단까지의 최소 비용을 계산합니다.
    • 각 계단의 최소 비용은 이전 계단과 두 계단 전의 최소 비용 중 작은 값에 해당 계단의 비용을 더해 결정됩니다.
  3. 마지막 계단까지 오르는 데 필요한 최소 비용을 DP 배열에서 반환합니다.