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
- 백트래킹
- 프로그래머스
- 구현
- 플로이드-와샬
- 완전탐색
- java
- 후니의 쉽게 쓴 시스코 네트워킹
- BFS
- 그리디
- 에라토스테네스의 체
- 동적계획법
- 투 포인터
- 시뮬레이션
- 스택
- CS
- mst
- 알고리즘
- Network
- Effective Java
- 수학
- 백준
- 문자열
- 위상정렬
- 유니온 파인드
- Kotlin
- 이분탐색
- dfs
- 세그먼트 트리
- JUnit 5
- swea
Archives
목록유니온 파인드 (2)
반갑습니다!
[백준] 1976 여행 가자
1976번: 여행 가자 boj.kr 풀이 이 문제에서 동혁이의 여행 계획을 달성하기 위해서 최단 거리로 이동할 필요가 없다. E C B C D가 계획이라면 도시 사이에 다른 곳을 경유해도 된다는 의미이다. 따라서 이 문제는 결국 여행 계획을 세운 도시들이 같은 그래프에 속해있는지 파악해서 모두 같은 그래프에 속해있으면 YES, 다른 그래프에 속해있으면 NO를 출력하는 문제가 된다. 아래의 코드에서 같은 그래프에 속해있는지는 유니온 파인드를 사용해서 구분했다. 코드 C++ Python3
알고리즘 문제 풀이
2020. 10. 9. 15:23
[백준] 15809 전국시대
15809번: 전국시대 boj.kr 풀이 이 문제는 유니온 파인드(서로소 집합)를 사용해서 해결할 수 있는 문제이다. 두 나라가 동맹과 전쟁을 수행할 때마다 나라가 합쳐지는데, 이 때 병력을 처리하는 부분만 신경써주면 어렵지 않게 해결할 수 있다. 전쟁을 했는데 두 나라의 병력이 같은 경우에는 부모를 0으로 해줌으로서 정답을 출력할 때 제외할 수 있도록 처리했다. 코드 C++ #include #include #include #include using namespace std; int n, m; vector root, power; int find(int x) { if (root[x] != x) root[x] = find(root[x]); return root[x]; } void merge(int a, in..
알고리즘 문제 풀이
2020. 10. 6. 01:54