fuzzysound

fuzzysound

© 2021

Dark Mode

[파이썬 코딩테스트 팁] sys.setrecursionlimit

import sys
sys.setrecursionlimit(10 ** 6)

만약 재귀를 사용해서 풀어야 하는 문제라면, 위 코드를 상단에 쓰는 것은 선택이 아닌 필수이다. 파이썬의 기본 재귀 깊이 제한은 1000으로 매우 얕은 편이다. 따라서 재귀로 문제를 풀 경우 드물지 않게 이 제한에 걸리게 되는데, 문제는 코딩테스트 환경에서는 에러 메시지를 볼 수 없다는 것이다. 이 함정에 걸린 사람은 원인 미상의 런타임 에러를 붙잡고 몇십 분을 각종 테스트케이스를 넣어가며 씨름하겠지만, 그런다고 문제가 잡힐 리 없다. 결국에는 문제를 풀지 못한 채 제출하게 되고 내가 뭘 잘못했지 하는 끝없는 자괴감에 빠지게 되는 것이다.

실제로 올해 여러 번 코딩테스트에 응시하면서 위 코드 없이는 풀 수 없는 문제들을 꽤 많이 봤다. 그중에는 카카오 인턴 코딩테스트 문제도 있었다. 억을하게 문제를 틀리고 싶지 않다면 위 코드를 반드시 숙지해놓아야 할 것이다.