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
- 백준
- 1편
- 유니온파인드
- 투포인터
- 식단
- 중반부
- IBK기업은행 #기업은행 #디지털 #직무 #정리
- 소감
- 스마일게이트
- Algorithm
- 카카오인턴
- 보석쇼핑
- 코딩테스트
- c++
- Smilegate
- LIS #Algorithm #요소추적
- 삼성 #코테 #2020상반기 #c++
- 서버개발캠프
- Union-find
- BaekJoon
- 알고리즘
- BFS
- 카카오
- 코테
Archives
- Today
- Total
목록Union-find (1)
짱아의 개발 기록장
백준 17398번. 통신망 분할(c++) / union-find
이 문제는 처음에 딱 읽었을 때 bfs로 풀면 간단하겠다라고 생각했지만, 통신탑과 간선의 개수가 각각 최대 100,000 인것을 보고 bfs로 풀다가는 백퍼 시간초과가 나겠구나 싶었다. 그리고 다른 방법을 고민하다가 도저히 아이디어가 생각나지 않아, 문제 유형을 검색해보니 바로 "유니온파인드"를 이용하는 문제였다. 끊을 간선을 제외한 모든 간선을 먼저 연결해주고 끊을 간선들을 역순으로 하나씩 연결해주며 값을 계산해나가면 된다. 예를 들어, a->b a를 b와 연결해준다면 a의 부모 노드를 찾고 b의 부모노드를 찾아서 연결해주고 b의 부모노드의 값에 a의 부모노드의 값을 더해주면 된다. (cost[b] += cost[a] 이런식으로 구현했다.) 코드 첨부 1 2 3 4 5 6 7 8 9 10 11 12 1..
Algorithm/Baekjoon
2020. 7. 23. 14:22