출력을 한번에 하는 것이 더 빨라서 그렇습니다.
10871번 - X보다 작은 수
출력을 한번에 하는 것이 더 빨라서 그렇습니다.
kemin님의 제출 기록을 보면 용량 문제가 생기지는 않는 것 같으므로 시간이 빠른 것이 중요하다면 2번 방식의 코드를 사용하는 것이 좋습니다.
cin과 cout은 C언어에서의 scanf, printf 입출력과 달리
스트림, 즉 버퍼 형식으로 되어 있어 지속적인 내부 동기화를 수행합니다.
따라서 cin과 cout이 빈번하게 번갈아서 실행되면
몰아서 입력받고 몰아서 출력하는 것보다 느려집니다.
ios::sync_with_stdio(false);나 cin.tie(NULL); 라는 문장을 보신 적이 있다면,
바로 이 동기화를 해제하겠다는 의미입니다.
동기화를 해제시키신 다음에는 printf나 scanf를 사용하시면 안됩니다.
댓글을 작성하려면 로그인해야 합니다.
kemin1910 1년 전
1번 방식은 제가 고친 코드입니다. 처음으로 제출한 방식은 2번 방식인데 아무래도 배열 용량에 따른 경고메시지가 나타나길래 거슬려서 고쳤습니다. 그런데 1번 방식이 아무리 봐도 더 깔끔하고 최적화 된 모습인 거 같은데 1번 방식은 416ms, 2번 방식은 4ms로 거의 100배의 시간 차이가 나타났습니다. 그로 인해 체점 시간도 오래 걸렸습니다. 이 문제에 대한 원인이 뭘까요?