본문 바로가기
반응형

오류 해결2

백준 파이썬 RecursionError 재귀함수 문제를 풀다보면 가끔 RecursionError라는 것이 발생 합니다. 재귀함수가 계속 실행되면 파이썬 입장에서는 무한루프에 빠진것이 아닌가하는 생각을 하게 됩니다. 그래서 일정 수준의 재귀함수가 호출된다면 에러가 발생하게 됩니다. 재귀 최대 깊이 확인하기 파이썬이 정한 최대 재귀 함수의 깊이는 아래 코드로 확인할 수 있습니다. import sys print(sys.getrecursionlimit()) DFS, 다이나믹 프로그래밍등을 재귀로 구현했다면 파이썬이 정한 최대 깊이로는 에러가 발생할수 밖에 없습니다. 따라서 이 문제는 재귀함수가 많이 호출될 거라는 것을 알려주어야 RecursionError가 발생하지 않습니다. 재귀 최대 깊이 수정하기 재귀의 최대 깊이를 수정하는 방법은 아래와 같습니.. 2023. 9. 7.
파이썬 버전에 따른 백준 런타임 에러(TypeError) 파이썬 에러 백준에서 파이썬 문제를 풀 다 생긴 오류 사항에 대해 공유합니다. 2023년 정보올림피아드 2차 초등부, 중등부 문제인 고기파티를 풀다 생긴 오류 입니다. 문제를 이미 풀긴 했지만 코드의 최적화나 다른 방향으로 풀어보기 위해 이렇게 저렇게 바꿔 보았는데 도저히 알 수 없는 부분에서 계속 TypeError가 발생했습니다. 수정된 부분중 어디가 문제인지 확인하기 위해 하나씩 내용을 원래대로 바꿔가던 중 원인을 찾을 수 있었습니다. 원인 찾기 파이썬 문제를 풀 때 이분 탐색을 사용하려면 bisect 모듈을 사용합니다. C++에서 upper_bound와 같은 역할을 하는 bisect_right 함수를 사용해서 문제를 해결했었습니다. bisect_right, bisect_left 함수를 보니 key를.. 2023. 8. 15.
반응형