int main()
{
size_t matrix[ 16 ] = { 0, };
for( size_t* a = matrix; a < matrix + 13; ++a )
for( size_t* b = a + 1; b < matrix + 14; ++b )
for( size_t* c = b + 1; c < matrix + 15; ++c )
for( size_t* d = c + 1; d < matrix + 16; ++d )
{
*a = *b = *c = *d = 1;
for( size_t* m = matrix; m < matrix + 16; m += 4)
{
for( size_t x = 0; x < 4; ++x )
{
putchar( m[ x ] | 0x30 );
putchar( ' ' );
}
putchar( '\\n' );
}
putchar( '\\n' );
*a = *b = *c = *d = 0;
}
return 0;
}
어떻게 생각하시유~?
for문 이렇게 많이 써도 되나여
아무 상관없시유~
for문 많이 쓰면 n^2 3 4 5 6 이렇게 되는거 아닌가여
전체 코드 실행 횟수는 변한게 없쥬~
13 ^ 4 == 28561 개의 행렬을 생성해서 4 * 4 번 0과 1들을 찍는 것 뿐.
아 질문을 잘못한건지도 모르겟는데 나중에 큰 프로그램 만들때 for문 많이 중첩해서 쓰면 그때는 어떻게 되죠
256 번 반복하는 루프 1개랑 16번 반복하는 루프 두개랑 뭐 달라유?
단순히 보면 코드의 량이 조금 늘어나는것 처럼 보이지만 지금 사용한것 처럼 개행조건 처리를 별도로 하는것 보단 싸쥬.
그럼 수업때 long n n^2 이런건 왜 배우는거죠?
그게 big O 의 맹점이쥬
어떻게 생각해보면 n^ 으로 1000번 모두다 비교해보는것보다 100번 비교하는 다른 알고리즘이 더 좋은 해결책 아닐지 생각도 들지만 코드 이해가 안되니 원
이 코드에는 사실 딱히 비교 코드가 없는디?
정해진 반복 횟수를 도는 것 뿐.
저는 단지 코세님이면 for문을 적게 쓰ㅜ고 해결할수 있을지 궁금했어여
for 한개면 되쥐 ㅋㅋ
성능을 위해 for 갯수를 늘린 케이스인데?
for 줄이면 무조건 빠르다는건 착각.
빅오를잘못이해했는듯
ㅇㅇ // 그냥 하는 게 O(N)면 저건 O(N^4)가 아니라 O({N^(1/4)} ^ 4)임. 차이 없어.
루프 중첩 레벨이 지수를 결정하는 건 얼추 맞는 생각이지만, 루프 안을 어떻게 짰느냐에 따라 그 밑수가 전혀 달라지거든.