알고리즘 문제분석(35)
-
[BFS] 백준 2644 촌수계산
www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진 www.acmicpc.net 수행기간 : 2021/01/19~01/20 첫 실패작이 나왔다.. 수행기간동안 풀다가 못풀어서 주말에 마져 풀려고 도전했지만 실패하였다. BFS&DFS 코스를 다 마치고 마지막에 한번더 풀어보려고 한다.
2021.01.25 -
[BFS] 백준 2667번 단자번호붙이기
www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 수행기간 : 2021/01/18~01/19 이 문제는 지금까지 풀었던 DFS&BFS 보단 확실히 난이도가 있는 문제로 보였다. solved.ac 에 가서 난이도를 찾아보니 역시 실버1.. 사실 나는 아직 실버 1이나 골드5를 풀기에는 조금 벅차다. 그래도 이건 저번주에 풀었던 미로찾기를 응용한 버전이라고 생각하여 쭉 풀어나갔다. BFS구현은 쉬웠지만 "0을 경계로 단지를 어떻게 구분해야 할까" 여기서 너무 오래 ..
2021.01.19 -
[DFS] 백준 2606번 바이러스
www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 수행기간 : 2021/01/15~01/15 벌써 DFS/BFS 본격 문제풀이에 들어간지 한주가 지나간다. 내가 첫 문제를 풀때 말했던 벡터에 익숙해지기는 아직도 힘든가보다.. 이번에는 map과 visit을 벡터로 구현하여 정적배열들을 좀 쓰지 않고 풀고 싶었는데 아쉽다.. 돌아오는 주에는 꼭 배열을 쓰지 않으려고 노력해보려 한다. 이 문제는 사실 한가지만 생각하면 쉬운 DFS에 속한다. 컴퓨터가 감염되는 문제이므로 ..
2021.01.18 -
[BFS] 백준 2178번 미로 탐색
www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 수행기간 : 2021/1/13~1/13 미로탐색에서 처음으로 queue 이라는 것을 사용하여봤다. pair는 이차원 배열의 인덱스를 표현할 때 사용하고, 특히 미로탐색같이 최단경로를 구하는 BFS를 구현할 때 이용한다. 블로그를 쓰기전 BFS 문제를 몇개 풀어본 적이 있었는데 최근에는 큐를 써서 구현하려고 노력중이다. 다만 아직도 배열이 익숙한지 혼용하는 부분이 보이긴 한다. 그리고 BFS의 특징(?), 문제를 몇개 풀다보니 확실히 미로나 길..
2021.01.18 -
[DFS&BFS] 백준 1260번 DFS와 BFS
www.acmicpc.net/problem/1260 지금 c++ 벡터를 완벽히 숙지하지 못하여 queue는 벡터로 선언하고 map이나 visit은 일반 전역변수로 선언해준 것이 아쉽긴하다. 차차 익혀나가면서 바꾸려고 한다. DFS는 재귀를 통한 풀이를 하였고, BFS는 큐를 통하여 구현하였다. #include #include #include using namespace std; queue q; int map[1001][1001]; int visit[1001] = { 0 }; int N, M, V; void DFS(int V) { visit[V] = true; cout V; for (int i = 0; i > line1 >> line2; map[line1][line2] = 1;..
2021.01.18