풀이

    백준 1012 풀이 (유기농 배추, DFS, 행렬)

    2667번과 아주 흡사하다.(guccin.tistory.com/89?category=977502) 그나마 다른점은 정사각형 행렬이 아니라 직사각형 행렬이라는점 뿐이다. 그래서 2667의 DFS함수를 그대로 가져와서 사용할 수 있었다. 코드는 2667과 거의 유사하고 다른점은 배추의 포인트를 직접 갱신 시켜준다는 점과 패딩을 직사각형에 맞춰주는 것 밖에는 없다. 그래서 2667을 이해하면 그냥 껌이 되버리는 문제이다. 풀이 쓰는 시간이 아까우니 바로 코드를 첨부한다. def DFS(i, j, L): stack = [(i,j)] out = [] while stack: t = stack.pop() a,b = t if t not in out: out.append(t) L[a][b] = 0 # 지워버려 #위쪽 오..

    백준 1904 풀이 (재귀함수 인척하는 점화식 풀이)

    백준 1904 풀이 (재귀함수 인척하는 점화식 풀이)

    이거 문제도 파악하고 금방 식을 세웠다. 그런데 재귀함수로 풀으려 했더니 메모리 초과나고, 출력도 초과나고 난리도 아니었다. 결국에 고수분들 푼거 슬쩍 보고오니 재귀함수로 푸는게 아니었다. 낚였다. 사실 재귀함수를 써야할 때가 있고 재귀함수를 안써도 되는 경우가 존재한다. 예를 들어 연산이 너무 많아지는 경우에는 재귀함수를 정말 써야하는지 고민해보아야한다. 만약 재귀함수를 써야하는 경우에는 다이나믹 프로그래밍을 염두해 보고, 그래도 초과가 난다면 최대 재귀 제한을 풀어주면 된다. import sys sys.setrecursionlimit(재귀횟수) 난 점화식도 세웠고 딱히 재귀함수를 써야할 필요성이 없음에도 재귀함수로 푸는 것이라 추측하고 재귀를 놓지를 못했다. 그래서 이렇게 뻘한 삽질을 반복했다. 그래..