https://www.acmicpc.net/problem/2470
2470λ²: λ μ©μ‘
첫째 μ€μλ μ 체 μ©μ‘μ μ Nμ΄ μ λ ₯λλ€. Nμ 2 μ΄μ 100,000 μ΄νμ΄λ€. λμ§Έ μ€μλ μ©μ‘μ νΉμ±κ°μ λνλ΄λ Nκ°μ μ μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. μ΄ μλ€μ λͺ¨λ -1,000,000,000 μ΄μ 1,000,00
www.acmicpc.net
< λ¬Έμ ν€μλ λ° νμ΄ λ°©λ² >
1. λ μμ ν©μ΄ 0κ³Ό κ°μ₯ κ°κΉμ΄ κ²(μμλ μμ μ μμ)μ μ°ΎμμΌ νλ€.
βΆβ· λ μμ ν©μ ꡬνκ³ μ λκ°μΌλ‘ λΉκ΅νλ€.
2. μ£Όμ΄μ§ μλ μ λ ¬ λΌμ μ£Όμ΄μ§μ§ μλλ€.
βΆβ· μ λ ¬μ ν, ν¬ ν¬μΈν°μ 쑰건μ λ§λ€μ΄μ€λ€.
β» ex) "λ°±μ€ 1644 - μμμ μ°μν¨" ν¬ ν¬μΈν° μΈλ±μ€ μμ§μμ 쑰건: sumμ΄ Nλ³΄λ€ μμΌλ©΄ twoIdxλ₯Ό ν΄ λ oneIdxλ₯Ό μ¦κ°μν¨λ€.
3. λ μμ ν©μ΄λ―λ‘ μΈλ±μ€λ μλ‘ κ°μΌλ©΄ μ λλ€.
βΆβ· while λ¬Έμ 쑰건μ while ( point_one < point_two ) λλ while ( point_one != point_two )
< μ½λ >
#include <iostream>
#include <algorithm>
#include <vector>
#include <math.h>
#include <limits.h>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int N;
cin >> N;
vector<long long> solution;
for (int idx = 0; idx < N; ++idx) {
long long data;
cin >> data;
solution.emplace_back(data);
}
sort(solution.begin(), solution.end());
int point_one, point_two, RO, RT;
point_one = 0; point_two = solution.size() - 1;
long long sum = LLONG_MAX;
while (point_one <point_two)
{
if (sum > abs(solution[point_one] + solution[point_two]))
{
sum = abs(solution[point_one] + solution[point_two]);
RO = solution[point_one];
RT = solution[point_two];
}
if (solution[point_one] + solution[point_two] <= 0)
point_one++;
else
point_two--;
}
cout << RO << " " << RT;
return 0;
}
* long longμ intλ‘ λ°κΏλ λλ€κ³ ν©λλ€.
'π coding test > β½ λ°±μ€' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μ νλ κ² λ³΄λ€ λ«κ² μ§
ν¬μ€ν μ΄ μ’μλ€λ©΄ "μ’μμβ€οΈ" λλ "ꡬλ ππ»" ν΄μ£ΌμΈμ!