skins346   4년 전

매크로 함수 써봤는데 

d[i][0] = r + MIN(d[i - 1][1], d[i - 1][2]);

이부분에서 MIN반환값만 들어가네요 .. r값을 더한 값이 들어가야하는데 

뭐가 문제인거죠? 

topology   4년 전

#define MIN(a,b) a<b?a:b

2+MIN(2, 3)

컴파일러는 전처리기에서 이것을

2+2<3?2:3

로 바꿉니다. 결과값은 3으로, 의도했던 결과가 아니죠.

매크로는 사용할 때 주의하셔야 합니다.

skins346   4년 전

아 답변 감사드립니다!

kscodebase   1년 전

코드 좀 보고 배웠습니다. 저는 그리디로 풀었는데, 이런 방법이 있었군요...

댓글을 작성하려면 로그인해야 합니다.