Algorithm๐ฐ/๋ฐฑ์ค
[๋ฐฑ์ค] 2470 ๋์ฉ์ก ์ด๋ถํ์
Jouureee
2021. 2. 5. 18:19
๋ฌธ์ :
2470๋ฒ: ๋ ์ฉ์ก
์ฒซ์งธ ์ค์๋ ์ ์ฒด ์ฉ์ก์ ์ N์ด ์ ๋ ฅ๋๋ค. N์ 2 ์ด์ 100,000 ์ดํ์ด๋ค. ๋์งธ ์ค์๋ ์ฉ์ก์ ํน์ฑ๊ฐ์ ๋ํ๋ด๋ N๊ฐ์ ์ ์๊ฐ ๋น์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ์ด ์๋ค์ ๋ชจ๋ -1,000,000,000 ์ด์ 1,000,00
www.acmicpc.net
๋ถ์ :
algorithm์ sort ํจ์๋ ๊ธฐ๋ณธ sort ํจ์์ ๋ฌ๋ฆฌ ๋ง์ง๋ง ์ธ์์ ์ฌ์ฉ์ ์ ์ ํจ์๋ฅผ ์ถ๊ฐํด ์ ๋ ฌํ ์ ์๋ค. ์ ํจ์๋ฅผ ์ด์ฉํด
1) ๋ฐฐ์ด์ ์ ๋๊ฐ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌ
2) ์ ๋๊ฐ ๋น๊ต๋ฅผ ํตํด ์๋ ๊ฐ ๋ณ์์ ์ ์ฅ ํ ๋์
3) ๋ง์ง๋ง์ผ๋ก ์ฐ์ฑ๊ณผ ์์นผ๋ฆฌ ๊ฐ ๊ตฌ๋ถํด swap ํ์ฌ ์ถ๋ ฅ
ํ๋ ๋ฐฉ์์ ์ฌ์ฉํ์๋ค.
c++ ์ฝ๋ :
//
// 2470_solution1.cpp
// SOMA๐ฉ๐ป๐ป
//
// Created by JoSoJeong on 2021/02/05.
//
#include <iostream>
#include <math.h>
#include <algorithm>
using namespace std;
bool compare(int a, int b){
return abs(a) < abs(b);
}
void solution1(int arr[], int n){
sort(arr, arr + n, compare);
int initDiff = 2147483647;
int acid = 0, alkali = 0;
for(int i = 0; i< n - 1; i++){
int diff = (arr[i] + arr[i+1]) - 0;
if(abs(diff) < initDiff){
initDiff = abs(diff);
acid = arr[i];
alkali = arr[i+1];
}
}
if (acid > alkali){
swap(acid, alkali);
}
cout << acid << " " << alkali << endl;
}
int main() {
int n;
int i=0;
cin >> n;
int arr[n];
while(i<n){
cin >> arr[i];
i++;
}
solution1(arr,n);
return 0;
}