https://www.acmicpc.net/problem/2399
2399번: 거리의 합
첫째 줄에 n(1 ≤ n ≤ 10,000)이 주어진다. 다음 줄에는 x[1], x[2], x[3], …, x[n]이 주어진다. 각각은 0 이상 1,000,000,000 이하의 정수이다.
www.acmicpc.net
c++로 백준 2399번 문제를 풀어보겠다.
문제
수직선에 n개의 점이 찍혀 있다. 각각의 점의 x좌표가 주어졌을 때, n2개의 모든 쌍에 대해서 거리를 더한 값을 구하는 프로그램을 작성하시오.
즉, 모든 i, j에 대해서 |x[i] - x[j]|의 합을 구하는 것이다.
입력
첫째 줄에 n(1 ≤ n ≤ 10,000)이 주어진다. 다음 줄에는 x[1], x[2], x[3], …, x[n]이 주어진다. 각각은 0 이상 1,000,000,000 이하의 정수이다.
출력
첫째 줄에 답을 출력한다.
예제 입력 1 복사
5
1 5 3 2 4
예제 출력 1 복사
40
<문제 풀이>
1. n을 입력받는다.
2. n개의 숫자를 입력받아 배열에 저장한다.
3. 배열을 오름차순으로 정렬한다.
4. 배열의 모든 수의 차를 sum에 저장한다.
5. sum*2값을 출력한다.
코드는 다음과 같다.

백준 알고리즘에서 "틀렸습니다"라고 떴다. 이유를 찾지 못해 다시 도전할 예정이다.
'C++' 카테고리의 다른 글
[백준 알고리즘] 1068번 : 트리, c++ (0) | 2022.05.08 |
---|---|
[백준 알고리즘] 5176번 : 대회 자리, c++ (0) | 2022.05.08 |
[백준 알고리즘] 9366번 : 삼각형 분류, c++ (0) | 2022.05.05 |
[백준 알고리즘] 1822번 : 차집합, c++ (0) | 2022.05.03 |
[백준 알고리즘] 17094번 : Serious Problem, c++ (0) | 2022.04.10 |