※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25558번 문제인 내비게이션이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25558
안내하는 경로의 길이가 가장 짧은 내비게이션을 찾아 문제를 해결하자. 이는 반복문을 이용해 간단히 구현해낼 수 있다.
출발지와 첫번째 경유지 사이의 거리, 마지막 경유지와 도착지 사이의 거리의 처리에 유의해 구현하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
typedef long long ll;
int N;
ll Sx, Sy, Ex, Ey;
ll X[100], Y[100];
ll ans = 0, dist = 1000000000000000007LL;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N >> Sx >> Sy >> Ex >> Ey;
for (int i = 1; i <= N; i++) {
ll val = 0;
int M; cin >> M;
for (int m = 0; m < M; m++) cin >> X[m] >> Y[m];
for (int m = 1; m < M; m++) val += abs(X[m] - X[m - 1]) + abs(Y[m] - Y[m - 1]);
val += abs(X[0] - Sx) + abs(Y[0] - Sy) + abs(X[M - 1] - Ex) + abs(Y[M - 1] - Ey);
if (val < dist) ans = i, dist = val;
}
cout << ans;
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 26942 // C++] Gruppindelning (1) | 2023.01.11 |
---|---|
[BOJ 6600 // C++] 원의 둘레 (0) | 2023.01.10 |
[BOJ 18130 // C++] 여름나기 (0) | 2023.01.10 |
[BOJ 27110 // C++] 특식 배부 (0) | 2023.01.10 |
[BOJ 26949 // C++] Kylskåpstransport (0) | 2023.01.10 |