오늘 남이 풀어놓은 풀이들 보다가 cin이나 scanf 안 쓰고 이런 식으로 입력받는 방법 있길래 살짝 고치고 정수형타입 여러가지 받을 수 있도록 템플릿화했어요
g++ -O2 옵션 넣어 컴파일하고 12345 2만줄 적힌 텍스트 파일 만들어서 표준입력으로 넣어봤더니
readIntegral : 1505 clocks
scanf : 2915 clocks
이렇게 나오네요 사양 아주 끔직하게 후진 컴에서의 결과에요
백준에서 이렇게 입력 많이 받을 일도 없고 int외의 정수 쓸일도 없어서 의미가 없기는 한데 기왕 만든거 써보는 걸로 ㅋㅋㅋ
getchar_unlocked 쓰면 조금 더 빨라짐
검색해보니 데이터경쟁 가능성 무시하고 락 안걸린 getchar 버전인가보네요 한번 해볼게요
아까 리플 썼던거는 실수가 있었어서 지우고 다시 실험해보니 엄청나게 빨라졌어요 428 vs 2912네요
백준은 공부용이니까 이런걸로 시간 줄이는거 도움이 안됨 로직 개선으로 줄이는 연습을 해야함
생각보다 효율적인데? ios.h 써서 fastio 로 구현하면 더 좋을 것 같은데 참고로 백준은 -O2 로 돌리니까 이거 기준으로 측정하셈 - return 0;
fastio는 처음 들어본 내용이네요 후다닥 공부해보러 가겠습니다 좋은 정보 감사해요 ㅋㅋ
백준 입력많이받는 문제 꽤 있음, 다익스트라같은거 ㅇㅇ