반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- codeup 1020 java
- 핸즈온 머신러닝
- 최단 경로 알고리즘
- 가운데 글자 가져오기 파이썬
- 빅데이터분석기사
- m1 docker
- docker 삭제
- 프로그래머스 가운데 글자 가져오기 자바
- 나누어 떨어지는 숫자 배열 java
- m1 docker install
- 트리의 지름 java
- 청년 Ai Big Data 아카데미
- 코드업 1020 자바
- 가운데 글자 가져오기 java
- 청년 AI Big Data 아카데미 13기
- 프로그래머스 가운데 글자 가져오기 python
- 빅분기실기
- 프로그래머스 나누어 떨어지는 숫자 배열 파이썬
- docker remove
- docker 완전 삭제
- codeup 1020 자바
- 코드업 1020 java
- 가운데 글자 가져오기 자바
- 트리의 지름 자바
- 프로그래머스 가운데 글자 가져오기 파이썬
- 프로그래머스 나누어 떨어지는 숫자 배열 자바
- 나누어 떨어지는 숫자 배열 python
- 최소 스패닝 트리
- 가운데 글자 가져오기 python
- 최소 스패닝 트리 자바
Archives
- Today
- Total
NineTwo meet you
[백준/자바] 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라는 결과를 갖게 된다.
이 문제를 해결하기 위해서는 Queue와 boolean 배열을 사용했다.
Queue를 사용해 해당 정점과 연결된 모든 간선을 살펴볼 수 있다.
이때, 한번 지나쳤던 간선이라면 boolean을 사용해 표시해 다시 지나가지 않도록 한다.
위의 예시에서 보다시피 그래프는 여러 개의 컴포넌트로 이루어져 있을 수 있기 때문에 이를 for문을 사용해 구해줬다.
한번 함수를 돌 때마다 한 컴포넌트를 확인하는 것이기 때문에 result값에 1씩을 더해준다.
코드
반응형
'프로그래밍 문제 > 백준' 카테고리의 다른 글
[백준/자바] 1707 이분 그래프 (0) | 2021.01.11 |
---|---|
[백준/자바] 4963 섬의 개수 (0) | 2021.01.11 |
[백준/자바] 13023 ABCDE (0) | 2021.01.11 |
[백준/자바] 16168 퍼레이드 (0) | 2021.01.10 |
[백준/자바] 1199 오일러 회로 (0) | 2021.01.07 |
Comments