본문 바로가기

728x90

알고리즘/최단 경로

(6)
[자바]백준 16958번 텔레포트 [그래프 - 플로이드 워셜][엄탱] 안녕하세요. 개발자 엄탱입니다. 이 글은 알고리즘을 공부하면서 공부 기록용입니다. 그래서 설명마다 일기용으로 편하게 작성하여 반말 형식으로 작성하려고 합니다. 그리고 보시다가 더 좋은 방법이나 잘 못 알고 있는 내용이 있다면 알려주시면 정말 감사하겠습니다. 좋은 하루 되세요 :) 문제 2차원 평면 위에 N개의 도시가 있다. 일부 도시는 특별한 도시이다. (r1, c1)에 있는 도시에서 (r2, c2)에 있는 도시로 가는 이동 시간은 |r1 - r2| + |c1 - c2|와 같다. 만약, 두 도시가 특별한 도시라면, 텔레포트를 이용해서 이동할 수도 있다. 텔레포트에 걸리는 시간은 T이다. 두 도시의 쌍 M개가 주어졌을 때, 최소 이동 시간을 구해보자. 입력 첫째 줄에 도시의 수 N, 텔레포트하는데 걸리는 ..
[자바]백준 11581번 구호물자 [그래프 - 플로이드 워셜][엄탱] 안녕하세요. 개발자 엄탱입니다. 이 글은 알고리즘을 공부하면서 공부 기록용입니다. 그래서 설명마다 일기용으로 편하게 작성하여 반말 형식으로 작성하려고 합니다. 그리고 보시다가 더 좋은 방법이나 잘 못 알고 있는 내용이 있다면 알려주시면 정말 감사하겠습니다. 좋은 하루 되세요 :) 서론(생략가능) 이번 문제는 알고리즘 분류를 보면 dfs와 플로이드 워셜로 분류되는데 두 방법을 합쳐서 푸는 방식이 아닌 각가의 방식으로 풀 수 있는 문제이다. 깊이 우선 탐색(dfs) 플로이드 워셜 dfs부분은 좀 더 공부해보고 추가적으로 올릴 생각이다. 지금은 그래프 최단 경로 공부중이라 플로이드 워셜로 문제를 풀었기 때문에 2번 알고리즘을 사용해서 풀이하겠다. 문득 알고리즘 분류를 보지 않았으면, 이 문제를 쉽게 풀 수 있..
[자바]백준 7040번 밥먹기 [그래프 - 벨만 포드][엄탱] 안녕하세요. 개발자 엄탱입니다. 이 글은 알고리즘을 공부하면서 공부 기록용입니다. 그래서 설명마다 일기용으로 편하게 작성하여 반말 형식으로 작성하려고 합니다. 그리고 보시다가 더 좋은 방법이나 잘 못 알고 있는 내용이 있다면 알려주시면 정말 감사하겠습니다. 좋은 하루 되세요 :) 이번 문제는 백준 7040번 밥먹기 플래티넘1 문제 인데, 난이도에 비해 어렵지 않게 풀 수 있는 문제이지만, 만약 알고리즘 분류에 벨만-포드를 보고 벨만-포드 알고리즘으로 접근해서 쉽게 풀렸지만, 만약 어떤 알고리즘으로 사용해야 하는지 몰랐으면 못 풀었을 것 같다. 문제 소들은 밥을 먹을 때 친구들과 가까이 줄을 선다. 선영이는 소를 N마리 (2 ≤ N ≤ 1,000 가지고 있고, 1번부터 N번까지 번호를 붙였다. 소는 일직선..
[자바]백준 1865번 웜홀 [그래프 - 벨만포드][엄탱] 안녕하세요. 개발자 엄탱입니다. 이 글은 알고리즘을 공부하면서 공부 기록용입니다. 그래서 설명마다 일기용으로 편하게 작성하여 반말 형식으로 작성하려고 합니다. 그리고 보시다가 더 좋은 방법이나 잘 못 알고 있는 내용이 있다면 알려주시면 정말 감사하겠습니다. 좋은 하루 되세요 :) 문제 때는 2020년, 백준이는 월드나라의 한 국민이다. 월드나라에는 N개의 지점이 있고 N개의 지점 사이에는 M개의 도로와 W개의 웜홀이 있다. (단 도로는 방향이 없으며 웜홀은 방향이 있다.) 웜홀은 시작 위치에서 도착 위치로 가는 하나의 경로인데, 특이하게도 도착을 하게 되면 시작을 하였을 때보다 시간이 뒤로 가게 된다. 웜홀 내에서는 시계가 거꾸로 간다고 생각하여도 좋다. 시간 여행을 매우 좋아하는 백준이는 한 가지 궁금..
[자바]백준 11657번 타임머신 [그래프 - 벨만 포드][엄탱] 안녕하세요. 개발자 엄탱입니다. 이 글은 알고리즘을 공부하면서 공부 기록용입니다. 그래서 설명마다 일기용으로 편하게 작성하여 반말 형식으로 작성하려고 합니다. 그리고 보시다가 더 좋은 방법이나 잘 못 알고 있는 내용이 있다면 알려주시면 정말 감사하겠습니다. 좋은 하루 되세요 :) 문제 N개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 버스가 M개 있다. 각 버스는 A, B, C로 나타낼 수 있는데, A는 시작도시, B는 도착도시, C는 버스를 타고 이동하는데 걸리는 시간이다. 시간 C가 양수가 아닌 경우가 있다. C = 0인 경우는 순간 이동을 하는 경우, C < 0인 경우는 타임머신으로 시간을 되돌아가는 경우이다. 1번 도시에서 출발해서 나머지 도시로 가는 가장 빠른 시간을 구하는..
[자바]백준 13549번 숨바꼭질3 [그래프-다익스트라][엄탱] 안녕하세요. 개발자 엄탱입니다. 이 글은 알고리즘을 공부하면서 공부 기록용입니다. 그래서 설명마다 일기용으로 편하게 작성하여 반말 형식으로 작성하려고 합니다. 그리고 보시다가 더 좋은 방법이나 잘 못 알고 있는 내용이 있다면 알려주시면 정말 감사하겠습니다. 좋은 하루 되세요 :) 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 ..

728x90