Coding Is My Life

코딩은 인생

728x90

전체 글 108

[백준/C++][(1922번) 네트워크 연결]

문제 https://www.acmicpc.net/problem/1922 1922번: 네트워크 연결 이 경우에 1-3, 2-3, 3-4, 4-5, 4-6을 연결하면 주어진 output이 나오게 된다. www.acmicpc.net 이 문제는 최소 스패닝 트리 알고리즘을 사용하면 바로 풀리는 문제이다. 문제해결 1.vector v 를 사용하여 가중치,노드1,노드2 순으로 입력받는다. 2.가중치에 대하여 오름차순으로 정렬한다. 3.parent배열을 모두 parent[i] = i로 초기화 한다 (처음에는 모두 부모가 자기 자신이다 -> 모두 다 끊어진 상태로 시작한다,최소스패닝 알고리즘이다) 4.만약 두 노드가 연결되지 않은 노드라면 연결하고 가중치를 result에 더해간다. ->두 노드가 연결된 유무는 find..

[백준/C++] 치즈(2638번)

https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5≤N, M≤100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 표 www.acmicpc.net 문제해결 1. 2차원 배열에 데이터 입력받음 2. 가장 모서리는 항상 빈공간이므로 (0,0) 에서 BFS를 이용하여 치즈 바깥쪽을 9라고 해놓은다. 3. 치즈를 차례차례 하나씩 방문하면서 2개 이상 9하고 인접하면 1에서 0으로 바꾼다. 4. 위 방법을 치즈가 완전히 다 없어 질때 까지 반복한다. 코드 ide.goorm.io/shared_files/sksj0111_91856d3b48581..

[백준/C++]연구소(14502)

https://www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 문제해결 1. 데이터를 2차원배열에 입력받는다. 2. 재귀를 이용하여 모든 경우의 수의 놓일 수 있는 벽을 세운다. 3. 벽을 3개 세우면 bfs을 통해 바이러스를 퍼뜨린다. 4. 바이러스를 퍼뜨린 후 남아있는 안전구역을 센다. 5. 2~4번을 반복하면서 안전구역이 가장 많은 경우를 찾는다. 이 문제는 벽을 세우는게 가장 핵심 포인트다. 나도 처음에는 백트래킹을 잘 몰라서 못풀었는데 백준 문제 중에 N과M이라..

[백준/C++] K번째 최단경로 찾기(1854번)

문제해결 1.최단거리를 저장할 최대힙을 만들어준다. 2.최대힙의 사이즈가 k보다 작으면 무조건 push 3.최대힙의 사이즈가 k이고 top의 값이 new_val보다 크면 pop후 new_val를 push 한다. 4.이런 식으로 다익스트라 알고리즘을 응용한다. 코드 (코드의 주석이 상세하게 적혀있어 보시면 이해가 바로 되고 도움되실거예요!) ide.goorm.io/shared_files/sksj0111_250e20fbfd92552322517b1b09da0ed61603463344960 1854(3).cpp - goorm 구름IDE에서 공유된 소스코드를 볼 수 있는 페이지입니다. ide.goorm.io:443

728x90