leehanjun   7년 전

과정 출력 때문에 프로그램 속도가 느려집니다.

어떻게 하면 될까요?

plzrun   7년 전

cout, cin, endl 쓰실때는 반드시
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
를 써주세요.

아니면 scanf나 printf쓰는것을 추천해 드립니다.

그리고 endl도 쓰면 안되요~ (네버네버...)
저게 한번 호출될때마다 출력버퍼를 밀어버린다고(초기화) 들었어요.
이거때문에 endl쓰면 반복문 진짜 조금만 돌려도 시간초과 납니다.

그리고 출력과정을 모니터에 보이는 과정이라고 생각하고 쓰신거면 그것 때문에 오래걸리는게 아니에요. (그렇게 생각하신게 아니라면 그냥 이 글은 무시해주세요 ㅎ )
채점은 출력버퍼(stdout)에 있는걸 그냥 직접 확인하기 때문에
터미널 창에 보이는게 늦게 올라오는 건 출력버퍼에 있는 걸 화면에 보여주는데 시간이 좀 걸리는 것 때문이죠.. (즉, 답은 이미 출력버퍼에 써져있다는 거) 그러니 시간 초과랑은 관련이 없어요.

plzrun   7년 전

덧붙이자면 pow사용도 지양하는 게 좋습니다. 직접 만들어 쓰는게 좋아요.

leehanjun   7년 전

endl의 출력 버퍼를 초기화 한다는 사실은 또 처음 알았어요.

유익한 정보 알려주셔서 감사합니다. ^^

plzrun   6년 전

이제와서 보니 안되요가 매우 거슬리는군요. 안돼요 안돼  그리고 cout.tie(0)는 필요 없음다

댓글을 작성하려면 로그인해야 합니다.