일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딥러닝
- google coding competition
- 브루트포스
- nlp
- 리눅스
- 프로그래밍
- 구글 킥스타트
- BFS
- 그래프
- 킥스타트
- CSS
- AI
- 동적프로그래밍
- OS
- 네트워크
- 프로그래머스
- 코딩테스트
- DFS
- 운영체제
- 동적 프로그래밍
- 파이썬
- 알고리즘
- kick start
- 코딩 테스트
- PYTHON
- linux
- 코딩
- dp
- 순열
- 백준
- Today
- Total
목록union find (2)
오뚝이개발자
문제 https://www.acmicpc.net/problem/20040 20040번: 사이클 게임 사이클 게임은 두 명의 플레이어가 차례대로 돌아가며 진행하는 게임으로, 선 플레이어가 홀수 번째 차례를, 후 플레이어가 짝수 번째 차례를 진행한다. 게임 시작 시 0 부터 n − 1 까지 고유한 www.acmicpc.net 나의 풀이 전형적인 유니온 파인드(union find) 문제이다. 유니온 파인드 알고리즘은 그래프가 사이클을 갖는지 여부를 판별하는 알고리즘이다. 약간 헷갈렸던 부분이 사이클을 판별하기 위해선 연결하려는 두 노드 x,y가 같은 부모를 갖는지를 먼저 확인하고 unionParent 함수를 call해야 된다는 점이다. 처음에 unionParent를 먼저 실행하고 isSameParent를 실행..
DFS를 활용해 connected component의 갯수를 구하는 것이 필요할 때가 있다. 이럴 땐 탐색을 하면서 각 unit별로 구분을 해서 갯수를 카운트 해주면 된다. 정확히는 이를 union find 알고리즘이라고 한다. 예제를 통해 이해해보자. 아래 문제는 프로그래머스에 수록된 문제이다. programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr def dfs(start, n, visited, computers): fo..