[BOJ] 트리의 지름_1167
위 문제는 피지컬적인 부분보다 구현 방식을 생각해내지 못했다. 하지만 여러 다른 블로그들을 참고했을 때, 많은 분들이 생각해 내지 못한 것 같다.(아마 익혀야 하는 유형 중 하나인걸까,, 해결 방식은 다음과 같다. 1. 임의의 노드에서 출발하여 가장 긴 길이의 노드를 구한다. 2. 구한 노드 값에서 출발하여 같은 방식으로 가장 긴 길이를 구한다.(이것이 트리의 지름이 된다.) 트리가 있을 떄 가장 긴 부분을 구한 후, 그 노드에서 출발하여 가장 긴 길이를 구하면 그것이 지름이 된다. 이것을 생각해내는 것이 이 문제의 핵심이였다 (근데,, 왜 이게 지름인지는,,, 아직 정확하게 모르겠다. 그냥 뭔가 그럴 것 같긴 한데,, ㅡㅅㅡ) dfs2설명 우선 start, sum을 매개변수로 받았다. sum은 임의의 ..
백준 빙산 2573
해당 문제의 정답 코드이다. 더보기 from _collections import deque import copy n, m = map(int, input().split()) dx, dy = [-1, 1, 0, 0], [0, 0, -1, 1] data = [list(map(int, input().split())) for _ in range(n)] # 얼음아 녹아라. def melting(): data_copy = copy.deepcopy(data) for i in range(n): for j in range(m): if data_copy[i][j] != 0: for z in range(4): nx, ny = i + dx[z], j + dy[z] if 0