본문 바로가기

Algorithm/Baekjoon117

11657. 타임머신 (Swift, Python) https://www.acmicpc.net/problem/11657 11657번: 타임머신 첫째 줄에 도시의 개수 N (1 ≤ N ≤ 500), 버스 노선의 개수 M (1 ≤ M ≤ 6,000)이 주어진다. 둘째 줄부터 M개의 줄에는 버스 노선의 정보 A, B, C (1 ≤ A, B ≤ N, -10,000 ≤ C ≤ 10,000)가 주어진다. www.acmicpc.net 풀이 1번 도시에서 출발해서 나머지 도시로 가는 가장 빠른 시간을 구하는 문제이다. 1번에서 다른 모든 도시까지의 최단 경로를 구해주면 되는데 이때 걸리는 시간 C가 양수가 아닌 경우가 주어진다. 하나의 노드에서 다른 모든 노드까지의 최단 거리를 구하는 경우 대표적으로 다익스트라 알고리즘을 사용하면 되지만 다익스트라 알고리즘의 경우 간선.. 2021. 11. 14.
11404. 플로이드 (Swift, Python) https://www.acmicpc.net/problem/11404 11404번: 플로이드 첫째 줄에 도시의 개수 n이 주어지고 둘째 줄에는 버스의 개수 m이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의 번호가 www.acmicpc.net 풀이 플로이드 워셜 알고리즘을 적용하는 문제. 모든 도시에서 다른 모든 도시까지의 최단거리를 구해준다. 간단하게 플로이드 워셜 알고리즘을 적용하면 되는데 문제에서 주어진 '시작 도시와 도착 도시를 연결하는 노선은 하나가 아닐 수 있다.'만 주의하면 된다. a에서 b로 가는 도시의 노선이 여러개 주어질 수 있는데 그 중 가장 적은 비용이 드는 노선을 배열에 설정해줘야 한다. 코드 [Swift] 1 .. 2021. 11. 12.
(BOJ) 2644_촌수계산_JAVA https://www.acmicpc.net/problem/2644 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1≤n≤100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어진� www.acmicpc.net BFS를 활용한 문제. 부모 자식 관계가 주어지면 각각의 리스트에 값을 넣어준다. 예를 들어 1 2를 입력 받으면 1번 리스트에 2를 넣어주고 2번 리스트에 1을 넣어준다. 이와 같이 입력 받으면 n번 리스트에 n번 사람과 1촌 관계에 해당하는 사람의 번호가 들어있게 된다. 문제의 예제를 입력 받으면 다음과 같다. 촌수를 계산해야 하는 두 사람의 번호는 7 3이다. 7에서부터 시작.. 2020. 8. 11.