아래와 같이 해보시겠어요?
result = min(result, DFS(next)); 는 다음과 같이 확장됩니다.
result = ((result<DFS(next))?result:DFS(next));
result보다 DFS(next)가 큰 경우, DFS(next)가 2번 호출되면서 값을 overwrite 할 수 있어요.
2150번 - Strongly Connected Component
아래와 같이 해보시겠어요?
result = min(result, DFS(next)); 는 다음과 같이 확장됩니다.
result = ((result<DFS(next))?result:DFS(next));
result보다 DFS(next)가 큰 경우, DFS(next)가 2번 호출되면서 값을 overwrite 할 수 있어요.
min 함수를 호출하는 경우에는
caller
min(result, DFS(next))
callee
min(a , b)
callee에서 요런 식으로 받기 때문에, DFS(next)를 2번 호출할 일이 없습니다.
댓글을 작성하려면 로그인해야 합니다.
dsa2341 4년 전
다른 분의 코드를 가져왔는데요 DFS함수의 첫 for문에서 min함수를
#define min(a,b) (((a)<(b)) ? (a):(b))을 추가 한 것과 추가 안 한 것이 결과값이 다르게 나오는데 왜 이런 현상이
일어나나요?
매크로함수min이랑 c++기본 라이브러리에서 제공되는 함수 min이랑 어떤 차이가 있는건가요?