유니온파인드 3

[백준] 17619. 개구리 점프

https://www.acmicpc.net/problem/17619 17619번: 개구리 점프 첫 번째 줄에 통나무 개수 N과 질문의 개수 Q가 주어진다. 다음 N개의 줄에 각 통나무에 x1, x2, y의 세 정수 좌표가 주어진다. 주어진 통나무는 두 점 (x1, y)와 (x2, y)를 잇는 형태이다. (x1 < x2) 모든 www.acmicpc.net 통나무를 받은 순서대로 통나무의 번호가 매겨지므로, 통나무를 받을 때 좌표와 함께 idx를 저장한다. 그러면 통나무 리스트에는 [x1, x2, y, 통나무 번호]가 들어있게 된다. 이렇게 받은 리스트를 통나무의 x1 (제일 첫부분 좌표)로 정렬해준다. 만약 [[4, 9, 3, 0], [3, 5, 7, 1], [1, 3, 5, 2]] 과 같은 arr가 만들..

알고리즘 2021.10.19

[SWEA] 7465. 창용 마을 무리의 개수 (bfs, union-find)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWngfZVa9XwDFAQU SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 간단한 union-find를 이용해 푸는 방법과, bfs를 이용해 푸는 방법 두 가지가 있다. 1. union-find 부모를 자기 자신으로 초기화한 부모리스트를 먼저 생성한 뒤, p1 p2를 받을 때마다 부모를 찾고, 이들을 합쳐주는 (부모를 갱신) 하는 작업을 진행한다. 모든 input을 받은 뒤, 부모 리스트를 돌며 본인이 부모인 경우만 ans +를 해준다. def find_p(x): if x..

알고리즘 2021.10.15