반응형
리뷰
첫C++ 정렬 문제였다.
문제 풀이
- 상점의 위치를 벡터의 인자로 받아준다. 입력받은 벡터를 오름차순으로 정렬해 준다.
- 가장 주차하기 좋은 장소는 첫번째 상점의 위치이다. 첫번째 상점부터 벡터의 요소까지의 거리를 계산해 준다.
- 모든 거리를 더해준 후 마지막으로 차로 돌아오는 거리를 계산해 준다.
- 모든 거리 합을 출력해 주면 된다.
참고 사항
내림 차순으로 정렬해도 상관 없을듯 하다.
정답 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int t, n, i, j, num;
cin >> t;
for (i = 0; i < t; i++) {
cin >> n;
vector<int> lst;
for (j = 0; j < n; j++) {
cin >> num;
lst.push_back(num);
}
int ans = 0;
int start = lst[0];
int cur = start;
sort(lst.begin(), lst.end());
for (j = 0; j < n; j++) {
ans += abs(cur - lst[j]);
cur = lst[j];
}
ans += cur - start;
cout << ans << "\n";
}
}
728x90
반응형
'알고리즘 공부 > C++' 카테고리의 다른 글
백준 30802번 웰컴 키트 C++ (1) | 2024.07.15 |
---|---|
백준 2822번 점수 계산 C++ (3) | 2024.07.15 |
백준 1292번 쉽게 푸는 문제 C++ (0) | 2024.07.14 |
백준 2953번 나는 요리사다 C++ (0) | 2024.07.14 |
백준 2592번 대표값 C++ (0) | 2024.07.14 |