«   2022/08   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
Archives
Today
11
Total
93,048
관리 메뉴

차근차근

[백준 10819] 차이를 최대로 본문

대학교/Algorithm

[백준 10819] 차이를 최대로

SWKo 2020. 3. 18. 00:05

0. 제목

  • 백준 10819 차이를 최대로
  • BOJ 10819 차이를 최대로
  • C++ 10819 차이를 최대로

1. 문제

https://www.acmicpc.net/problem/10819


2. 풀이

  • next_permutation 이라는 STL 함수를 사용하면 된다.
  • next_permutation은 순열의 순서를 바꿔주고 순열이 최종적으로 끝나면(완전하게 역순이 되면) 다시 원래 순서대로 바꾼 뒤 false를 반환해준다.
  • 예를 들어, 1 2 3 4 -> 1 2 4 3 -> 1 3 2 4 -> 1 3 4 2 -> ... -> 4 3 2 1 -> (false반환)1 2 3 4
  • 그리고 처음에 무조건 실행을 하는 do~while문을 사용하였다.

3. 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main(int argc, const char * argv[]) {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);cout.tie(NULL);
    int N;
    cin >> N;
    
    vector<int> v(N);
    for(int i = 0; i < N; i++){
        cin >> v[i];
    }
    
    int result = 0;
    sort(v.begin(), v.end());
    do{
        int temp = 0;
        for(int i = 0; i < v.size() - 1; i++)
            temp += abs(v[i] - v[i+1]);
        
        result = max(result, temp);
    }while(next_permutation(v.begin(), v.end()));
    
    cout << result << '\n';
    
    return 0;
}
 
 

'대학교 > Algorithm' 카테고리의 다른 글

[백준 1525] 퍼즐  (0) 2020.03.20
[백준 1697] 숨바꼭질  (0) 2020.03.19
[백준 10819] 차이를 최대로  (0) 2020.03.18
[백준 6378] 디지털 루트  (0) 2020.03.15
[백준 2225] 합분해  (0) 2020.03.14
[백준 9461] 파도반 수열  (0) 2020.03.13
0 Comments
댓글쓰기 폼