🍋 문제링크


https://www.acmicpc.net/problem/20058

🍎 코드 제출 기록 (메모리 및 시간)


제출 날짜

2021/04/16

메모리

297264 KB

시간

1400 ms

🥝 메모


1. 깊은 복사와 얕은 복사

ice 의 배열을 tmp에 그대로 복사하기 위해서

 tmp = ice

를 하면 얕은 복사를 하기 때문에 ice 배열의 원소를 변경하면 tmp 배열의 원소도 같이 변하기 때문에 tmp의 역할을 제대로 수행 할 수 없다. 따라서,

import copy
tmp = **copy.deepcopy**(ice)

위와 같은 깊은 복사를 해주어야 한다.

2. 최대 재귀 깊이

Python이 정한 최대 재귀 깊이는 sys.getrecursionlimit()을 이용해 확인할 수 있다. BOJ의 채점 서버에서 이 값이 1,000으로 되어 있기 때문에 Python이 정한 최대 재귀 깊이보다 재귀의 깊이가 더 깊어질 때 **런타임에러(RecursionError)**가 발생하게 된다.

import sys
sys.setrecursionlimit(10**5)

이를 방지하기 위해서는, 위의 코드와 같이 sys.setrecursionlimit(**)**을 사용하여 Python이 정한 최대 재귀 깊이를 변경하면 된다.