본문 바로가기
C 언어

매크로(Macro) 함수 - 코딩 테스트 시간 단축을 위한 마법

by Best Coding 2024. 12. 22.
반응형

 

 

코딩테스트에서 실행시간을 단축시키는 것은 매우 중요합니다. C언어를 사용한다면 매크로(Macro)를 활용하면 코드의 길이를 줄이고 실행 속도를 높일 수 있습니다. 이번 글에서는 코딩테스트에서 자주 쓰이는 매크로 함수를 소개합니다.


 

0. 매크로 사전학습

아래 링크에 C언어 매크로에 대한 기본 개념을 정리했습니다. 개념, 원리, 주의점, 예시코드 등 필요한 모든 개념을 총 정리했습니다. 매크로를 사용하면 왜 시간이 단축되는지에 대한 설명도 포함되어 있으니 미리 보고 오시기를 강력 추천드립니다!!

 

2024.12.22 - [C 언어] - C언어 매크로(Macro)의 모든 것 - #define, 개념, 동작원리, 성능, 장점, 다양한 예시, 주의사항

 

C언어 매크로(Macro)의 모든 것 - #define, 개념, 동작원리, 성능, 장점, 다양한 예시, 주의사항

C언어에서 매크로(Macro)는 코드 작성과 관리의 효율성을 높이는 중요한 도구입니다. 하지만 개념과 동작 원리를 제대로 이해하지 못하면 예상치 못한 오류가 발생할 수 있습니다. 이번 글에서는

best-coding.tistory.com

 

 

반응형

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

반응형

댓글