크게 생각하고, 목표를 높게 잡고, 대담하게 행동하라.

“언젠가는 목표에 이를지도 모르는 단계를 밟는 것으로는 언제나 실패한다. 모든 단계가 그 자체로 목표인 동시에 목표로 이르는 단계여야한다.” - 괴테

728x90

그래프 2

[Python] 백준 14502 - 연구소

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 처음에 문제 보고 어떻게 해야할지 막막했다. 바이러스를 막을 최적의 벽 3개를 어떻게 알아내지????? 근데 그런 걱정을 하는 문제가 아니었다. 입력 조건을 보면 그래프 크기 최대가 8*8 이다ㅋㅋㅋ 그냥 벽을 세울 수 있는 모든 경우의 수를 구하면 되는 문제. 나는 아래와 같이 풀었다. (안전 영역 = 그래프 크기 - 바이러스 개수 - 벽 개수) BFS로 풀었고, 모든 경우의 수를 알기 위해서 itertoo..

[Python] 크루스칼 알고리즘 baseline

최소신장트리(MST, MinimumSpanningTree)를 구하는 알고리즘 중 하나이다. 하나의 그래프가 있을 때 모든 노드를 포함하면서 사이클이 없어야하고 간선의 가중치가 최소가 되는 트리를 의미한다. 아래의 그림이 바로 그런 예시다. 알고리즘은 대략적으로 다음과 같다. 1. 가장 작은 가중치의 간선 탐색 2. 사이클이 생기지 않는 노드인지 확인 3-1. 사이클이 생긴다면 pass 3-2. 사이클이 생기지 않으면 해당 간선 리스트에 저장 아래 코드는 MST의 최소 가중치를 구하는 코드다. # 특정 원소가 속한 집합 찾기 def find_parent(parent, x): # 루트 노드가 아니라면, 루트 노드를 찾을 때까지 재귀적으로 호출 if parent[x] != x: parent[x] = find_..

728x90