예시 코드에서
int main() {
int t, a, b;
scanf("%d", &t);
for (int i = 0; i < t; i++) {
scanf("%d%d", &a, &b);
printf("%d\n", a + b);
}
return 0;
}
int main() {
int t, a, b, ans[1000000];
scanf("%d", &t);
for (int i = 0; i < t; i++) {
scanf("%d%d", &a, &b);
ans[i] = a + b;
}
for (int i = 0; i < t; i++) {
printf("%d", ans[i]);
}
return 0;
}
이 두개의 코드중에서 고수들은 뭐 사용함?
초보자인데 예시 코드중에 저 두개 예시가 나와서 그런데
고수들 좀 도와줘
저 코드는 그냥 A+B를 한다는거긴함
두번째건 돌긴 하나? 스택터지겠는데 - dc App
걍 프린트만 할거면 1번이 낫지 않나? 2번은 문법적으론 맞는데 아마 안돌거임. 배열 크기가 너무커서
1번이 훨 낫지 반복문 굳이 2번 돌릴 필요도 없고
반복은 최대한 줄이는에 좋음 - dc App
케바케임 전자로 못하는건 후자
while (t--) ans 100만 배열 전역으로 뺌
그리고 C++ 씀
이런 건 지피티가 잘 알려줌. O3 최대한 키고 한번 asm 보면 됨
버퍼를 사용하는 이유가 큰 덩어리로 입출력을 해서 성능 저하를 막는 것임 scanf나 printf 호출을 줄여야 하는데 위나 아래나 횟수 차이는 안남 보통은 언어나 OS에서 제공하는 입출력 버퍼를 사용하는 것이 나음 C라면 setbuf나 setvbuf가 있었던 것 같은데 C는 오래 사용을 안 해서 맞나 모르겠음 이게 안되면 출력 데이터를 큰 덩어리로 미리 조립해놓고 한번에 써야하고