본문 바로가기
반응형

Code7

[알고리즘] 플로이드 와샬(Floyd Warshall) 알고리즘이란? (C/C++) , C언어 예제 플로이드 와샬(Floyd-Warshall) 알고리즘 플로이드 와샬(Floyd-Warshall) 알고리즘은 모든 노드 쌍 사이의 최단 경로를 찾는 알고리즘입니다. 이 알고리즘은 그래프의 모든 간선의 가중치를 고려하며, 음수 가중치를 가진 간선도 처리할 수 있지만, 음수 사이클은 처리할 수 없습니다. 이 알고리즘의 핵심 아이디어는 '중간 노드' 개념입니다. 간단히 말해, 노드 i에서 노드 j로 가는 최단 경로는 직접 갈 수 있는 경로와 중간 노드를 거쳐서 가는 경로 중 최소인 것입니다. 플로이드 와샬 알고리즘을 C언어로 구현한 예시를 제공하겠습니다. 이 예시에서는 2차원 배열을 사용하여 그래프를 표현하며, 각 노드는 0부터 시작하는 인덱스로 표현합니다. int graph[V][V] { {0, 5, INF, .. 2023. 7. 10.
[백준/ BOJ] 10811번 : 바구니 뒤집기 문제 - [파이썬(Python)] 풀이 해설 이 문제는 기본적인 temp와 reverse를 활용해서 풀 수 있는 문제입니다. i for i in range(1,N+1)]로 바구니를 만들어 줍니다. 1 ) temp(임시) 바구니에 바구니를 i 부터 j 까지 저장 2 ) temp.reverse()로 바구니 값 역순으로 뒤집기 3 ) 바구니에 temp 바구니 값을 저장 하면 i번부터 j번까지 바구니가 역순으로 저장됩니다. 코드 N, M = map(int, input().split()) basket = [i for i in range(1, N+1)] for i in range(M): i,j = map(int, input().split()) temp = basket[i-1:j] temp.reverse() basket[i-1:j] = temp for i.. 2023. 7. 4.
[백준/ BOJ] 10813번 : 공 바꾸기 문제 - [파이썬(Python)] 풀이 해설 이 문제는 기본적인 temp를 활용해서 풀 수 있는 문제입니다. i for i in range(1,N+1)]로 바구니를 만들어 줍니다. 1 ) temp(임시) 바구니에 i값을 저장 2 ) i번 바구니에 j번 바구니의 값을 저장 3 ) j번 바구니에 temp값을 저장 하면 i번 바구니와 j번 바구니의 값이 교환됩니다. 코드 N,M = map(int, input().split()) basket = [i for i in range(1,N+1)] temp = 0 for i in range(M): i,j = map(int, input().split()) temp = basket[i-1] basket[i-1] = basket[j-1] basket[j-1] = temp for i in range(N): prin.. 2023. 7. 4.
반응형