백준 c++ 11497 통나무 건너뛰기

7904 단어 백준백준

11497 통나무 건너뛰기

문제풀이


#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
vector<int> v;
vector<int> res;
int main()
{
    int t,n;
    cin >> t;
    while(t--)
    {
        int min_value=0;
        cin >> n;
        for(int i=0;i<n;i++)
        {
            int a;
            cin >> a;
            v.push_back(a);
        }
        sort(v.begin(),v.end());
        for(int i=0;i<n;i++)
        {
            if(i%2==0)
                res.push_back(v[i]); 
        }
        for(int i=n-1;i>0;i--)
        {
            if(i%2==1)
                res.push_back(v[i]);
        }
        for(int i=1;i<n;i++)
        {
            int tmp = abs(res[i]-res[i-1]);
            if(tmp >min_value)
                min_value=tmp;
        }
        v.clear();
        res.clear();
        cout << min_value << "\n";
    }
   
}


입력받은 숫자를 정렬한뒤 0,2,4 idx는 오름차순 3,1 idx는 내림차순으로 넣고 간격의 차이가 제일큰 값을 출력했다.

좋은 웹페이지 즐겨찾기