diff --git a/rivkms/README.md b/rivkms/README.md index bec8994..5c1bf5b 100644 --- a/rivkms/README.md +++ b/rivkms/README.md @@ -12,3 +12,4 @@ | 8차시 | 2024.03.01 | Greedy | [회의실 배정](https://www.acmicpc.net/problem/1931) | [#8](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/28) | | 9차시 | 2024.03.22 | two-pointer | [두 수의 합](https://www.acmicpc.net/problem/3273) | [#9](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/38) | | 10차시 | 2024.03.28 | queue | [최대힙](https://www.acmicpc.net/problem/11279) | [#10](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/40) | +| 11차시 | 2024.04.02 | two-pointer | [두 용액](https://www.acmicpc.net/problem/2470) | [#11](https://github.com/AlgoLeadMe/AlgoLeadMe-7/pull/45) | \ No newline at end of file diff --git a/rivkms/Two_pointer/2470.cpp b/rivkms/Two_pointer/2470.cpp new file mode 100644 index 0000000..49ec015 --- /dev/null +++ b/rivkms/Two_pointer/2470.cpp @@ -0,0 +1,40 @@ +#include +#include +#include + +using namespace std; + +int main(){ + int n; + cin >> n; + vector vec(n,0); + for(int i = 0; i> vec[i]; + } + sort(vec.begin(), vec.end()); + vector answer(2); + int p1 = 0, p2 = n-1; + int min = INT32_MAX; + while(true){ + if(p1 >= p2){ + break; + } + int sum = vec[p1]+vec[p2]; + if(abs(sum) < min){ + min = abs(sum); + answer[0] = vec[p1]; + answer[1] = vec[p2]; + if(sum == 0){ + break; + } + } + if(sum < 0){ + p1++; + } + else{ + p2--; + } + } + cout << answer[0] << " " << answer[1]; + return 0; +} \ No newline at end of file