티스토리 뷰
반응형
이런 사이트나 대회에서 사용할 수 있는 fast file I/O 방법을 공유 해 드리겠습니다.
제가 소개 해드리는 팁은 input을 한번에 받아서 이 값을 다시 get_num()이나 get_str()로 원하는 자료형 값으로 읽어오는 방법입니다.
왠지 코드를 보면 while문을 돌고 돌아서 값을 return 해주니 더 느릴 것 같습니다.
하지만 test case가 많으면 많을수록, 그리고 input 값이 많이 주어지면 많이 주어질 수록 엄청난 시간을 절약할 수가 있습니다.
다 같은 알고리즘으로 풀이를 했다면, 이런 꼼수아닌 꼼수가 여러분의 순위를 좌우하는 법이거든요.
여러분도 한번 사용해보세요.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <stdio.h> char buf[3000]; char * b = buf; int get_num() { while (*b < '0' || *b > '9' ) b++; int ret = 0; do { ret = (ret*10) + (*b - '0' ); b++; } while (*b >= '0' && *b <= '9' ); return ret; } int get_str( char * str) { while (*b < 'A' || *b > 'z' ) b++; int length = 0; while (*b >= 'A' && *b <= 'z' ) str[length++] = *b++; return length; } int main() { //if (freopen("infile.txt", "r", stdin) == NULL) return 0; fread (buf, 3000, 1, freopen ( "infile.txt" , "r" , stdin)); return 0; } |
반응형
'개발 > 알고리즘' 카테고리의 다른 글
[알고리즘 / 알고스팟] 보글 Boggle (0) | 2018.06.29 |
---|---|
[알고스팟 / 알고스팟] 인터넷서점 bookstore (0) | 2018.06.29 |
[알고리즘 / 알고스팟] 문장 찾기 SENTENCE (0) | 2018.06.29 |
[알고리즘 / 알고스팟] 타일링 (0) | 2018.06.29 |
공지사항
최근에 올라온 글