관리 메뉴

NineTwo meet you

[백준/자바] 11724 연결 요소의 개수 본문

프로그래밍 문제/백준

[백준/자바] 11724 연결 요소의 개수

NineTwo 2021. 1. 11. 18:24
반응형

11724 연결 요소의 개수 사진 클릭시 문제로 이동


문제

방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다. (1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2)

둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다. (1 ≤ u, v ≤ N, u ≠ v)

같은 간선은 한 번만 주어진다.

출력

첫째 줄에 연결 요소의 개수를 출력한다.

예제 입력 1

6 5
1 2
2 5
5 1
3 4
4 6

예제 출력 1

2

예제 입력 2

6 8
1 2
2 5
5 1
3 4
4 6
5 4
2 4
2 3

예제 출력 2

1

설명

첫 번 예제의 경우 다음과 같은 그래프의 형태를 가져 2라는 결과를 갖게 된다.

11724 예제 1

이 문제를 해결하기 위해서는 Queue와 boolean 배열을 사용했다.

Queue를 사용해 해당 정점과 연결된 모든 간선을 살펴볼 수 있다.

이때, 한번 지나쳤던 간선이라면 boolean을 사용해 표시해 다시 지나가지 않도록 한다.

위의 예시에서 보다시피 그래프는 여러 개의 컴포넌트로 이루어져 있을 수 있기 때문에 이를 for문을 사용해 구해줬다.

한번 함수를 돌 때마다 한 컴포넌트를 확인하는 것이기 때문에 result값에 1씩을 더해준다.

 

코드

반응형
Comments