coding study(17)
-
[C++] 다익스트라 알고리즘
[풀이] -> 다익스트라 알고리즘 인접행렬 [결과]
2021.01.27 -
백준 1206번
[백준 1206번] www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 1) dfs : 재귀 2) bfs : queue
2021.01.20 -
백준 2606번
[백준 2606번] www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 이 문제는 간단하게 dfs로 풀면 된다. -> dfs 알고리즘 사용
2021.01.20 -
백준 2178번
[백준 2178번]_미로 탐색 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 1) map은 0과 1로 입력을 받을 배열, visited는 이미 방문 했던 블록을 가지 않도록 위한 배열 2) bfs 알고리즘 사용
2021.01.20 -
백준 11053번
동적 계획법 문제__백준 11053번 사진 출처 : www.acmicpc.net/problem/11053 처음 문제만 보고 이해하기 어려워 배열같은 표를 만들어 보면서 풀어봤다. arr,dp배열 모두 0으로 초기화 하고 첫 번째 배열 1부터 시작하기로 했다. 10,20,10,30,20,50 순으로 입력을 했다면 처음 입력 받은 수로 dp는 +1이 되고 다음 배열과 비교하면서 처음 입력 받은 수 dp 값을 증감 혹은 유지 한다. arr[0] = 0 arr[1] = 10 arr[2] = 20 arr[3] = 10 arr[4] = 30 arr[5] = 20 arr[6] = 50 dp[0] = 0 dp[1] = 1 dp[2] = 2 dp[3] = 1 dp[4] = 3 dp[5] = 2 dp[6] = 4 [풀이]..
2020.11.10 -
백준_계단 오르기(2579)
[동적 계획법] 이때 동적 계획법이란, 일반적으로 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제(subproblem)로 나누어 푼 다음, 그것을 결합하여 최종적인 목적에 도달하는 것이다. 각 하위 문제의 해결을 계산한 뒤, 그 해결책을 저장하여 후에 같은 하위 문제가 나왔을 경우 그것을 간단하게 해결할 수 있다. 이러한 방법으로 동적 계획법은 계산 횟수를 줄일 수 있다. 특히 이 방법은 하위 문제의 수가 기하급수적으로 증가할 때 유용하다. 사진 출처 : www.acmicpc.net/problem/2579 [조건] 중요하게 봐야하는 조건은 연속된 세개의 계단을 연속으로 밟지 않아야 한다는 것, 시작점은 계단에 포함되지 않는다는 것이다. 즉, 계단을 오를 때는 1칸 또는 2칸까지 연속으로 가능하다..
2020.11.10