티스토리 뷰

코딩/팁

백준 런타임 에러 해결

코코팜 2021. 12. 1. 23:37

Python

1. 재귀 호출 횟수 제한

백준 채점에서 파이썬 코드로 재귀호출을 1000회 이상하면 막힌다.

 

import sys
sys.setrecursionlimit(100000)

코드 상단에 추가해서 제한을 늘려주자

 

2. 입력 시간으로 인한 시간 초과

입력 받을 때 input()으로 받는 것보다 int(sys.stdin.readline())으로 받는 것이 훨씬 빠르다.

 

참고 : https://www.acmicpc.net/blog/view/56

 

입력 속도 비교

여러가지 언어와 입력 방법을 이용해서 시간이 얼마나 걸리는지 비교해 보았습니다. 방법: 첫째 줄에 정수의 개수 N (= 10,000,000), 둘째 줄부터 N개의 줄에 한 개의 자연수(10,000 이하)가 적힌 파일

www.acmicpc.net

 

C++

1. 입출력으로 인한 시간 초과

C++에서 많이 입출력으로 사용하는 cin, cout 이 C의 표준입출력인 printf, scanf보다 느리다. 

ios::sync_with_stdio(false); 
cin.tie(NULL); 
cout.tie(NULL);

이 코드를 입출력 전에 삽입해 속도를 올려주자

 

※주의

해당 코드는 C와 C++ 간의 버퍼 동기화를 끊게 되므로 printf, scanf와 혼용시 순서가 꼬일 수 있다.

 

2. endl 대신 '\n'을 사용하자. 

endl 은 행넘김 뿐만 아니라 출력 버퍼도 지우는데 채점 시엔 상관이 없음으로 시간을 단축할 수 있다.

 

 

 

 

추가 예정

'코딩 > ' 카테고리의 다른 글

군대에서 코딩하는 방법  (2) 2020.12.26
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
글 보관함