자라는 개발자/문제풀이

백준 c++ 18310 안테나

자란다 2022. 3. 12. 17:42
728x90
반응형

18310 안테나


문제풀이

💥틀린코드💥 시간초과

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void fast_io(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}
vector<int> v;
int main(void)
{
    fast_io();
    int n, res = 1000001,ans=0;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int num;
        cin >> num;
        v.push_back(num);
    }
    sort(v.begin(), v.end());
    for (int i = 0; i < n; i++)
    {
        int min = 0;
        for (int j = 0; j < n; j++)
        {
            if (i > j)
                min += v[i] - v[j];
            else
                min += v[j] - v[i];
        }
        if (res > min)
           {
                res = min;
                ans = v[i];
           }
    }
    cout << ans;
}

🔆맞은코드🔆

#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
void fast_io(void)
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
}
vector<int> v;
int main(void)
{
    fast_io();
    int n;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        int num;
        cin >> num;
        v.push_back(num);
    }
    sort(v.begin(), v.end());
    cout << v[(n-1)/2];
}

위의 틀린코드 방법으로 했다가 시간초과가 떠서 혹시나 설마 하고 정렬하고 가운데 값을 출력했더니 맞았다 ㅎ..

728x90
반응형