4개의 댓글이 있습니다.
-
-
Being -
네 그렇습니다.
#define
은 전처리기(Preprocessor; https://en.wikipedia.org/wiki/C_preprocessor)로 컴파일이 이루어지기 전에 파일의 내용을 조작하는 역할을 합니다. 예를 들어, 위의 코드의 경우:((slow_function()) < (another_slow_function()) ? (slow_function()) : (another_slow_function()));
과 같이 변환됩니다. 컴파일은 이 이후에 발생합니다.
8년 전 link
-
-
정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.
moon1288
https://algospot.com/judge/problem/read/CLOCKSYNC
위 문제를 풀고 있습니다.
풀이가 잘 안되어서 검색을 해서 다시 풀어보는데
최소값을 비교할 때
#define MIN(a,b) ((a)<(b) ? (a):(b))
위와같이 사용하였더니 시간초과가 나고
int MIN(int a, int b) { return a>b ? b : a; }
이렇게 대체했더니 답이 빠르게 나왔습니다.
제가 알기로는 define이 더 빠른걸로 아는데 왜 이런결과가
나온걸까요?
참고한 답은 아래와 같습니다.
https://github.com/Yukariko/algospot/blob/master/CLOCKSYNC.cpp
감사합니다.
8년 전