int num[2000];

가 있을때


for(int i=0;i<2000;i++) num[i]=-1;

하는것보다


memset(num,-1,sizeof(num));

하는게 더 빠르다


근데 memset은 1바이트 단위로 채우는거기 때문에

보통 0하고 -1로 초기화 하는거 말고는 잘 안씀.


-1을 1바이트 바이너리로 나타내면 11111111인데 

이게 num[0]에 4개가 들어감

11111111 11111111 11111111 11111111 그래서 -1 제대로 초기화가 됨. 0도 마찬가지.


근데 만약에 1을 넣는다면 00000001이 들어감.

그럼 num[0]은

00000001 00000001 00000001 00000001 즉 16843009로 초기화가 되어버림.


근데 이것도 존나 큰 값으로 초기화 할때 씀.

이를테면

int INF=16843009;

int num[2000];

for(int i=0;i<2000;i++) num[i]=INF;

이렇게 초기화 하면 느린데


int num[2000];

memset(num,1,sizeof(num));

이렇게 초기화 하면 빠르다.


꿀함수임 조음