kruskal4 [백준 2606번] 바이러스 난이도: 실버 III 문제 링크: https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 지금까지 다른 문제를 풀 때는 먼저 머릿속으로 생각을 하고, C++로 구현해서 정답 판정을 받은 후에, 같은 알고리즘을 Java 문법으로 다시 작성하는 식으로 접근하였습니다. 하지만 이런 식으로는 문제 하나를 푸는데 너무 오래 걸려서, 이번에 처음으로 순수 Java로 문제를 풀어 보았습니다. 문제를 단순화해서 생각해 보면, 1부터 n까지의 노드가 있고, 노드 간의 연결.. 2022. 1. 22. [백준 1944번] 복제 로봇 난이도: 골드 II 문제 링크: https://www.acmicpc.net/problem/1944 1944번: 복제 로봇 첫째 줄에 미로의 크기 N(4 ≤ N ≤ 50)과 열쇠의 개수 M(1 ≤ M ≤ 250) 이 공백을 사이에 두고 주어진다. 그리고 둘째 줄부터 N+1째 줄까지 미로의 정보가 주어진다. 미로는 1과 0, 그리고 S와 K로 주어 www.acmicpc.net 처음 문제를 읽어보고 나면 어떤 방법으로 접근해야 할지, 조금 막막하게 느껴질 수 있는 문제입니다 (제가 그랬음). 시작점에서 특정 도착점까지의 최단 거리를 구하는 방법에는 여러 가지가 있지만, 이렇게 격자 형식으로 판이 주어지는 경우에는 bfs가 편리합니다. 또, 이런 경우도 있을 수 있습니다. 시작점 S에서 도착점 A, B, C가 .. 2021. 9. 1. [백준 1647번] 도시 분할 계획 난이도: 골드 4 문제 링크: www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수N, 길의 개수M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 집 www.acmicpc.net 기본적인 크루스칼 알고리즘을 사용하고, 약간의 아이디어를 내서 최소 신장 트리를 두 개로 분할하는 문제입니다. 크루스칼 알고리즘에 대한 자세한 내용은 그래프 이론 글의 크루스칼 알고리즘 파트를 참고해 주세요. 최소 신장 트리에 대해 다시 복습해 봅시다. 모든 노드가 연결되어 있으며, 그 연결된 값의 총합이 최소가 될 때 최소 신장 트리라고 부릅.. 2021. 2. 13. [백준 1774번] 우주신과의 교감 난이도: 골드 4 문제 링크: www.acmicpc.net/problem/1774 1774번: 우주신과의 교감 (1,1) (3,1) (2,3) (4,3) 이렇게 우주신들과 황선자씨의 좌표가 주어졌고 1번하고 4번이 연결되어 있다. 그렇다면 1번하고 2번을 잇는 통로를 만들고 3번하고 4번을 잇는 통로를 만들면 신들과 선자씨끼 www.acmicpc.net 굉장히 재밌게 번역된 문제입니다. 번역되었다고 말하는 이유는, 이 문제는 원래 영문으로 된 문제입니다 (출처가 미국 정보 올림피아드). 그럼에도 전혀 번역되었다고 생각하지 못할 법한 내용으로 재밌게 번역되어 문제를 풀기에도 즐거웠네요. 문제를 자세히 읽어보면, 다음과 같이 요약할 수 있습니다. 정해진 노드가 입력으로 주어진다. 이미 건설된 노드 간의 엣지.. 2020. 11. 27. 이전 1 다음