inflearn logo
강의

講義

知識共有

다이나믹 프로그래밍에서 도무지 이해가 안가는 부분이 있어서 질문드립니다ㅠㅠ

173

ghdtkdgh51

投稿した質問数 1

0

dp 문제 중 효율적인 화폐 구성이라는 문제가 있는데요.

k개의 화폐로 n원을 만들 때 가작 작은 화폐 개수를 구하는 문제입니다.

예를 들어, k = 2, 3, 5로 구성되어 있고, n = 7, 정답이 a(n)이라면,

7 = 2 + 5이므로, a(7) = 2 개가 되는 문제입니다.

 

여기서 점화식은 a(n) = min( a(n), a(n-k) + 1 ),

a(n-k) + 1: 화폐 k원을 반드시 사용하는 경우를 의미

위의 예시에 점화식을 적용해본다면, 시작 전 a(n)을 모두 INF 값으로 초기화,

a(7) = min( a(7), a(7-2)+1, a(7-3)+1, a(7-5)+1 ) = min( a(7), a(5)+1, a(4)+1, a(2)+1 )

 

여기까지는 이해가 됐는데요,

설명이나 코드를 찾아보면 반복문의 위치가 제가 생각한거랑 반대로 돼있더라구요ㅠㅠ

저는 n에 대한 루프 안에 k의 루프가 와야 위의 점화식과 같은 방식이 된다고 생각했지만,

설명에서는 k = 2일 때 n=0~7까지 a(n)을 쫘르륵 구하고, 그다음 k = 3일 떄 쫘르륵, 마지막 k=7일 때 쭉 구해서 최종답을 구합니다.

 

왜 반복문의 위치가 이렇게 바뀌는 건가요??

아시는 분 답변 주시면 정말 감사하겠습니다ㅠㅠ

 

dp 다이나믹프로그래밍 알고리즘 코테 코딩테스트

回答 0

블로그 내용 정리

0

4

0

선택정렬 이해하기 & 구현하기

0

10

1

링크드 리스트 중간 삽입삭제 시간복잡도 질문

0

37

2

재귀함수 종료조건

0

34

2

백준 서비스 종료로 인한 강의 자료 업데이트 요청드립니다.

0

38

1

백준 사이트 준비중이라 문제를 볼 수 가 없어요

0

57

2

해당 차수 영상이 짤려 나갑니다

0

54

2

주피터 설치되어있는지 어디서 확인해요 도대체

0

55

4

pandas 설치 안되요 짜증나요

0

53

3

명령프롬포트에 파이썬 설치 안되요

0

54

3

윈도우에서 VScode 사용 시 질문입니다.

0

36

2

백준 서비스 종료인데 조치 없나요?

0

72

1

1-11 소수 나열하기 (에라토스테네스의 체)

0

70

1

첨부파일이 열리지 않습니다.. .pdf.json 파일로 받아지네요ㅠ

0

76

2

코테사이트 오류 해결 문의

0

64

1

무료행사(2) 투포인터 코드 질문 드립니다.

0

57

1

실습 권한 부탁드립니다.

0

58

2

Replit 강의 자료가 안나와요

0

70

3

Replit UI 변경으로 인한 실습 진행 문의

1

66

1

코딩 문제 사이트 접속 오류

0

76

1

강의노트 접속 불가

0

66

2

노션 링크 문의

0

92

2

문제 풀이 접속 오류

0

99

2

coders 사이트 로그인이 안돼요

0

94

2