반응형
코딩테스트에서 실행시간을 단축시키는 것은 매우 중요합니다. C언어를 사용한다면 매크로(Macro)를 활용하면 코드의 길이를 줄이고 실행 속도를 높일 수 있습니다. 이번 글에서는 코딩테스트에서 자주 쓰이는 매크로 함수를 소개합니다.
0. 매크로 사전학습
아래 링크에 C언어 매크로에 대한 기본 개념을 정리했습니다. 개념, 원리, 주의점, 예시코드 등 필요한 모든 개념을 총 정리했습니다. 매크로를 사용하면 왜 시간이 단축되는지에 대한 설명도 포함되어 있으니 미리 보고 오시기를 강력 추천드립니다!!
2024.12.22 - [C 언어] - C언어 매크로(Macro)의 모든 것 - #define, 개념, 동작원리, 성능, 장점, 다양한 예시, 주의사항
반응형
1. 최소값과 최대값 계산
값 비교 문제에서 유용하게 사용할 수 있습니다.
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define MAX(a, b) ((a) > (b) ? (a) : (b))
int min_value = MIN(3, 7); // 결과: 3
int max_value = MAX(3, 7); // 결과: 7
2. 비트 조작
비트 연산 문제를 간결하게 해결할 수 있습니다.
#define SET_BIT(x, pos) ((x) | (1 << (pos)))
#define CLEAR_BIT(x, pos) ((x) & ~(1 << (pos)))
#define TOGGLE_BIT(x, pos) ((x) ^ (1 << (pos)))
int num = 5; // 0101
num = SET_BIT(num, 1); // 0111 (5 -> 7)
num = CLEAR_BIT(num, 2); // 0011 (7 -> 3)
num = TOGGLE_BIT(num, 0); // 0010 (3 -> 2)
3. 배열 크기 계산
배열의 크기를 계산하는 데 사용할 수 있습니다.
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
int arr[] = {1, 2, 3, 4, 5};
int size = ARRAY_SIZE(arr); // 결과: 5
4. 절댓값 계산
절댓값을 간단히 계산할 수 있습니다.
#define ABS(x) ((x) < 0 ? -(x) : (x))
int value = ABS(-10); // 결과: 10
5. 값 교환(SWAP)
변수 간 값을 교환할 때 유용합니다.
#define SWAP(a, b) { int temp = a; a = b; b = temp; }
int x = 10, y = 20;
SWAP(x, y); // x: 20, y: 10
반응형
'C 언어' 카테고리의 다른 글
C언어 조건문 총정리 - if, else if, else, switch, 중첩 if문, 삼항연산자 예시코드 (0) | 2024.12.23 |
---|---|
C언어 인라인(inline) 함수란? - 정의, 예시, 장단점 (0) | 2024.12.23 |
C언어 매크로(Macro)의 모든 것 - #define, 개념, 동작원리, 성능, 장점, 다양한 예시, 주의사항 (0) | 2024.12.22 |
비트연산 - 코딩테스트 시간단축을 위한 마법 (1) | 2024.12.22 |
C언어 비트연산 완벽 정리 - 장점, 원리, 사용 예시, 예제코드 (2) | 2024.12.22 |
댓글