2020. 12. 26. 17:19γπ¨π»π« νλ‘κ·Έλλ°/BOJ(λ°±μ€)
KOI λΆμ€ κ³Όνμ°κ΅¬μμμλ λ§μ μ’ λ₯μ μ°μ± μ©μ‘κ³Ό μμΉΌλ¦¬μ± μ©μ‘μ 보μ νκ³ μλ€. κ° μ©μ‘μλ κ·Έ μ©μ‘μ νΉμ±μ λνλ΄λ νλμ μ μκ° μ£Όμ΄μ Έμλ€. μ°μ± μ©μ‘μ νΉμ±κ°μ 1λΆν° 1,000,000,000κΉμ§μ μμ μ μλ‘ λνλ΄κ³ , μμΉΌλ¦¬μ± μ©μ‘μ νΉμ±κ°μ -1λΆν° -1,000,000,000κΉμ§μ μμ μ μλ‘ λνλΈλ€.
κ°μ μμ λ μ©μ‘μ νΌν©ν μ©μ‘μ νΉμ±κ°μ νΌν©μ μ¬μ©λ κ° μ©μ‘μ νΉμ±κ°μ ν©μΌλ‘ μ μνλ€. μ΄ μ°κ΅¬μμμλ κ°μ μμ λ μ©μ‘μ νΌν©νμ¬ νΉμ±κ°μ΄ 0μ κ°μ₯ κ°κΉμ΄ μ©μ‘μ λ§λ€λ €κ³ νλ€.
μλ₯Ό λ€μ΄, μ£Όμ΄μ§ μ©μ‘λ€μ νΉμ±κ°μ΄ [-2, 4, -99, -1, 98]μΈ κ²½μ°μλ νΉμ±κ°μ΄ -99μΈ μ©μ‘κ³Ό νΉμ±κ°μ΄ 98μΈ μ©μ‘μ νΌν©νλ©΄ νΉμ±κ°μ΄ -1μΈ μ©μ‘μ λ§λ€ μ μκ³ , μ΄ μ©μ‘μ΄ νΉμ±κ°μ΄ 0μ κ°μ₯ κ°κΉμ΄ μ©μ‘μ΄λ€. μ°Έκ³ λ‘, λ μ’ λ₯μ μμΉΌλ¦¬μ± μ©μ‘λ§μΌλ‘λ νΉμ λ μ’ λ₯μ μ°μ± μ©μ‘λ§μΌλ‘ νΉμ±κ°μ΄ 0μ κ°μ₯ κ°κΉμ΄ νΌν© μ©μ‘μ λ§λλ κ²½μ°λ μ‘΄μ¬ν μ μλ€.
μ°μ± μ©μ‘κ³Ό μμΉΌλ¦¬μ± μ©μ‘μ νΉμ±κ°μ΄ μ£Όμ΄μ‘μ λ, μ΄ μ€ λ κ°μ μλ‘ λ€λ₯Έ μ©μ‘μ νΌν©νμ¬ νΉμ±κ°μ΄ 0μ κ°μ₯ κ°κΉμ΄ μ©μ‘μ λ§λ€μ΄λ΄λ λ μ©μ‘μ μ°Ύλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ μΆλ ₯
μ λ ₯ : 첫째 μ€μλ μ 체 μ©μ‘μ μ Nμ΄ μ λ ₯λλ€. Nμ 2 μ΄μ 100,000 μ΄νμ΄λ€. λμ§Έ μ€μλ μ©μ‘μ νΉμ±κ°μ λνλ΄λ Nκ°μ μ μκ° λΉμΉΈμ μ¬μ΄μ λκ³ μ£Όμ΄μ§λ€. μ΄ μλ€μ λͺ¨λ -1,000,000,000 μ΄μ 1,000,000,000 μ΄νμ΄λ€. Nκ°μ μ©μ‘λ€μ νΉμ±κ°μ λͺ¨λ λ€λ₯΄κ³ , μ°μ± μ©μ‘λ§μΌλ‘λ μμΉΌλ¦¬μ± μ©μ‘λ§μΌλ‘ μ λ ₯μ΄ μ£Όμ΄μ§λ κ²½μ°λ μμ μ μλ€.
μΆλ ₯ : 첫째 μ€μ νΉμ±κ°μ΄ 0μ κ°μ₯ κ°κΉμ΄ μ©μ‘μ λ§λ€μ΄λ΄λ λ μ©μ‘μ νΉμ±κ°μ μΆλ ₯νλ€. μΆλ ₯ν΄μΌ νλ λ μ©μ‘μ νΉμ±κ°μ μ€λ¦μ°¨μμΌλ‘ μΆλ ₯νλ€. νΉμ±κ°μ΄ 0μ κ°μ₯ κ°κΉμ΄ μ©μ‘μ λ§λ€μ΄λ΄λ κ²½μ°κ° λ κ° μ΄μμΌ κ²½μ°μλ κ·Έ μ€ μ무κ²μ΄λ νλλ₯Ό μΆλ ₯νλ€.
μ΄ μ©μ‘μ κ°μμΈ Nμ΄ μ£Όμ΄μ§κ³ κ° κ°μ μ©μ‘μ μμμ μμμ μ μκ°μ κ°μ§κ² λ©λλ€. λ μ©μ‘μ ν©μ΄ 0μ κ°μ₯ κ°κΉμ΄ κ²½μ°μ κ·Έ λ μ©μ‘μ νΉμ±κ°μ μ€λ¦μ°¨μμΌλ‘ μΆλ ₯νλ λ¬Έμ μμ΅λλ€.
μ΄μ€ forλ¬Έμ μ¬μ©νμ¬ μ©μ‘λΌλ¦¬ 1λ1 맀μΉν κ²½μ° O(N^2)μ μκ°λ³΅μ‘λλ‘ μκ°μ΄κ³Όκ° λκ² λ©λλ€.
κ·Έλ κΈ° λλ¬Έμ λ°°μ΄μ sorting ν ν μ΄λΆνμλ²μ μ΄μ©νμ¬ νΉμ±κ°μ ν©μ΄ 0μ κ°μ₯ κ°κΉμ΄ μΌμ΄μ€λ€μ νμν΄ λ³΄μμ΅λλ€.
#include<bits/stdc++.h> using namespace std; const int MAX=100000+1; const int INF=2000000000; int N,l1,l2,liquid[MAX]; int minVal=INF; //νΉμ±κ° ν©μ μ΅μκ° int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>N; for(int i=0;i<N;i++) cin>>liquid[i]; sort(liquid,liquid+N); for(int i=0;i<N;i++){ int s=0,e=N-1; while(s<=e){ int m=(s+e)/2; if(liquid[i]+liquid[m]==0) { s=m; break; } else if(abs(liquid[i]+liquid[m])>abs(liquid[i]+liquid[m+1])) s=m+1; else{ e=m-1; } } if(s==N) s--; // μλ‘ λ€λ₯Έ λ μ©μ‘ s != i if(abs(liquid[i]+liquid[s])<minVal&&s!=i){ minVal=abs(liquid[i]+liquid[s]); l1=min(liquid[i],liquid[s]); l2=max(liquid[i],liquid[s]); } } cout<<l1<<" "<<l2<<"\n"; return 0; }
λΆμ‘±ν λΆλΆμ΄λ κΆκΈν λΆλΆ λκΈ κ°μ¬νκ² μ΅λλ€!.
'π¨π»βπ« νλ‘κ·Έλλ° > BOJ(λ°±μ€)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 13306λ²: νΈλ¦¬ (0) | 2021.01.12 |
---|---|
[λ°±μ€] 11377λ²: μ΄νκ°νΈ 3 (0) | 2021.01.10 |
[λ°±μ€] 9576λ²: μ± λλ μ£ΌκΈ° (0) | 2020.12.28 |
[λ°±μ€] 1644λ²: μμμ μ°μν© (0) | 2020.12.25 |
[λ°±μ€] 1054λ²: νΉμ ν μ΅λ¨ κ²½λ‘ (0) | 2020.12.21 |