본문 바로가기

728x90

BFS

[백준알고리즘] 1707번: 이분 그래프 -Python [백준알고리즘] 1707번: 이분 그래프 -Python https://www.acmicpc.net/problem/1707 1707번: 이분 그래프 입력은 여러 개의 테스트 케이스로 구성되어 있는데, 첫째 줄에 테스트 케이스의 개수 K(2≤K≤5)가 주어진다. 각 테스트 케이스의 첫째 줄에는 그래프의 정점의 개수 V(1≤V≤20,000)와 간선의 개수 E(1≤E≤200,000)가 빈 칸을 사이에 두고 순서대로 주어진다. 각 정점에는 1부터 V까지 차례로 번호가 붙어 있다. 이어서 둘째 줄부터 E개의 줄에 걸쳐 간선에 대한 정보가 주어지는데, 각 줄에 인접한 두 정점의 번호가 빈 칸을 사이에 두고 주어 www.acmicpc.net 20200424 아래에 새로 푼 코드를 첨부했다. 기존의 코드는 객체를 생성하.. 더보기
[백준알고리즘] 11724번: 연결 요소의 개수 -Python [백준알고리즘] 11724번: 연결 요소의 개수 -Python https://www.acmicpc.net/problem/11724 11724번: 연결 요소의 개수 첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2) 둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다. www.acmicpc.net 두 가지 방법을 풀었다. 이 문제는 주어진 연결 정보를 가지고 그래프가 몇 개가 생성이 되는지 찾는 문제이다. 처음에는 Disjoint Set (서로 베타적인 집합)을 나타내기 위해서 Union-Find와 유사한 알고리즘을 만들었다. 이후 질문 게시판이나 다른 분들의.. 더보기
[백준알고리즘] 1260번: DFS와 BFS -Python [백준알고리즘] 1260번: DFS와 BFS -Python https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다. 입력으로 주어지는 간선은 양방향이다. www.acmicpc.net DFS와 BFS를 한 문제에서 동시에 해결해야 하는 문제이다. 여러 경로가 가능한 경우 중에서 작은 번호의 정점을 우선 선택했을 때의 경로들을 출력하면 된다. 예에에에에전에 Java로 풀었던 적이 있는 문제이기도 하고 기본 DF.. 더보기

728x90