인프런 커뮤니티 질문&답변

민수 S님의 프로필 이미지
민수 S

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

7-D

7-D 강의 코드 질문이 있습니다.

해결된 질문

작성

·

344

·

수정됨

1

강사님 먼저 수업 잘 듣고 있습니다. 감사합니다! 다름이 아니고 기초적인 질문일 수 있는데요 라인 9번에서 if (~ret) return ret; 구문이 있는데요, 이전 7-C 강의에서는 if(ret) return ret 였거든요. DP 값이 존재하면 바로 그 값을 리턴하는 문장으로 이해했는데요. 이 강의에서는 ~ret, 즉 레퍼런스에 틸다를 붙여준 이유가 궁금합니다.

답변 1

1

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 민수님 ㅎㅎ

~는 -(n + 1)입니다. (해당 부분은 비트마스킹 강의 때 배웁니다.)

즉, dp를 -1로 초기화를 했을 경우, -1을 -(N + 1)을 하면 0이 되는 것이죠.

만약 -1이 아니라 다른 값이라면 0이 아닌 다른 수기 때문에 해당 dp배열을 만든 것이기 때문에 해당 만들어져있는 dp값을 리턴하는 것이다.

라는 의미가 됩니다.

-1로 초기화했을 경우 ~를 써도 되고 -1이 아니라 다른 값으로 초기화를 했을 경우 ~를 쓰면 안됩니다.

dp는 -1로 초기화를 할 때도 있고 0 등 다른 값으로 초기화를 해야할 때도 있습니다.

 

참고로 해당 강의는 오늘 업데이트를 해서 다시 보시면 좀 더 자세한 설명을 보실 수 있습니다.

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

민수 S님의 프로필 이미지
민수 S
질문자

빠른 답변과 설명 감사드립니다. 강의 초반에이미 별 5개 드렸습니다. 개인적으로 중급 코테강의중 최고라고 생각합니다. DP만 봐도 이렇게 많이 풀이해놓은 강의는 못 본것 같습니다. 최고!

민수 S님의 프로필 이미지
민수 S

작성한 질문수

질문하기