inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

2주만에 통과하는 알고리즘 코딩테스트 (2024년)

6강 탑다운 DP - 상담 (#14501) 질문 있습니다!

해결된 질문

231

남경태

작성한 질문수 9

1

recur(idx) 함수의 첫 번째 if 문인 if (idx == N - 1) return 0; 에서 0을 리턴하는 이유가 궁금합니다.

제가 이해하기론 N - 1은 마지막 일자의 상담이고 마지막 일자의 상담에 걸린 경우 무조건 받는 것이 퇴사 전 돈을 더 많이 받기에 이득이라고 이해를 했는데요. 그렇다면 0을 리턴하는 것이 아닌 그 마지막날 상담에 받는 돈의 값을 리턴하는 게 맞는 게 아닌가 하는 생각이 들었습니다.

 

또한 idx > N - 1의 경우 dp 에 들어있는 돈의 값에 영향을 주면 안되므로 이 경우에는 if (idx > N - 1) return 0;  이지 않을까 하는 생각도 듭니다.

 

이런 의문점이 드는게 제가 문제를 잘 이해하지 못하고 접근하고 있는 것 아닌가 싶어서 질문드립니다~

 

요즘 쉬운 설명의 강의 너무 잘 듣고 있습니다~ 감사합니다!

python 코딩-테스트 알고리즘

답변 2

0

코딩 센세

좋은 질문 감사합니다!

 

return 0을 하는 것은 상담으로 받는 돈을 받는 로직과 관계가 없습니다!

 

돈을 계산하는 로직은 return을 해서 돌아가면서, 어떤 경우의 수가 이득인가를 구분하는 아래 코드에서 계산됩니다 ㅎㅎ

 

recur(idx + table[idx][0], result + table[idx][1])

recur(idx + 1, result)

 

return 0은 끝 지점에 돌아가서 해당 위치에서 최초의 인덱스로 돌아가면서 계산을 하기 위한 코드이기 때문에

 

질문자님이 말씀하신 마지막날에 하루가 걸리고 돈을 받을 수 있는 상황에는 자연스럽게 위의 코드로 계산이 됩니다!

 

한번 코드 한번 더 읽어보시고 그래도 궁금증이 해결되지 않으시면 또 질문주세요!

 

정말 좋은 질문 감사합니다!

-1

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

남경태님의 ‘[2주만에 통과하는 알고리즘 코딩테스트 (2024년)]’ 강의 관련하여 질문해주셨군요.

recur(idx) 함수의 첫 번째 if문과 관련한 질문이십니다.
if (idx == N - 1) return 0;에서 0을 반환하는 이유는, 보통 상담을 하루 이상 완료하는 데 시간이 걸리기 때문에 마지막 날에 새로운 상담을 시작할 경우 제 시간 내에 상담을 완료할 수 없어 상담을 시작하지 않는 것을 의미합니다. 그래서 상담을 시작하지 않으면 얻는 이익이 없기에 0을 반환합니다.

idx > N - 1의 경우, 상담 기간이 퇴사일을 넘어갔을 때를 처리하는 조건입니다. 마지막 날 이후에는 상담을 할 수 없으므로 추가 이익을 얻을 수 없기에 0을 반환하는 것이 맞습니다.

강의 내용에 대한 더 자세한 해석이나 궁금한 점은 남경태 강사님께 직접 문의하시거나 해당 강의의 Q&A 섹션을 활용하시면 좋을 것 같습니다.

강의를 꼼꼼히 듣고 이해하시려는 모습이 인상적입니다. 알고리즘이나 자료구조 학습에 있어 언제든 도움이 필요하시면 질문 주세요.

학습에 도움이 되시길 바라고, 좋은 결과 있으시길 바랍니다!

dp[x]가 최대값이라고 확신할수 있는 이유

0

44

1

1090번 문제 질문

0

150

1

유니온파인드

0

112

1

투포인터 25:15 질문

1

128

1

#1090번 문제 반례가 궁금합니다.

0

148

1

예제코드 자바입니다

1

186

1

정수론 파트 #2247 문제에 대한 질문입니다!

0

102

0

코드 오류

0

185

1

2강 정수론 문제3 #1407 질문

0

126

0

이차원 배열 (int형)dp로 0 혹은 -1로 체크하는 방법 말고 boolean형 배열로 체크해서 바로 리턴해줄 수 없나요?

0

154

0

1717번 최적화

0

112

0

백준 22988 문제 질문

1

193

2

[Python] 백준 1090번 문제

1

226

3

강의자료에서

1

162

2

2503 문제 제한 조건 질문!

1

249

2

백준 22988 번 문제

1

193

1

추가 강의 순서

1

180

2

(*문제 풀이)1090 테스트케이스 1번 C++

1

221

2

7강 RGB 색칠하기 질문 있습니다.

1

160

2

정수론 약수 빠르게 구하기 질문

1

257

1

1090 문제의 2, 3번째 아이디어는 결국 같은거 아닌가요?

1

373

2

1090 문제 관련하여 맨해튼 거리 최솟값에 대해 질문 있습니다.

1

223

2

누적합 문제 3번 질문

1

216

2

기억 ( 누적합 ) 강의 11660 문제

1

163

2