Skip to content

Commit

Permalink
2024-04-09 두 용액
Browse files Browse the repository at this point in the history
  • Loading branch information
InSange committed Apr 9, 2024
1 parent 57b94ef commit 894a6a3
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 1 deletion.
3 changes: 2 additions & 1 deletion InSange/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
| 4차시 | 2024.03.25 | 다익스트라 | [파티](https://www.acmicpc.net/problem/1238) | [#4](https://github.com/AlgoLeadMe/AlgoLeadMe-8/pull/15)|
| 5차시 | 2024.03.27 | DP | [RGB거리2](https://www.acmicpc.net/problem/17404) | [#5](https://github.com/AlgoLeadMe/AlgoLeadMe-8/pull/19)]
| 6차시 | 2024.04.01 | 최소신장트리 | [행성 터널](https://www.acmicpc.net/problem/2887) | [#6](https://github.com/AlgoLeadMe/AlgoLeadMe-8/pull/24)]
| 7차시 | 2024.04.04 | 스택 | [문자열 폭발](https://www.acmicpc.net/problem/9935) | [#7](https://github.com/AlgoLeadMe/AlgoLeadMe-8/pull/19)]
| 7차시 | 2024.04.04 | 스택 | [문자열 폭발](https://www.acmicpc.net/problem/9935) | [#7](https://github.com/AlgoLeadMe/AlgoLeadMe-8/pull/28)]
| 8차시 | 2024.04.09 | 투 포인터 | [두 용액](https://www.acmicpc.net/problem/2470) | [#8](https://github.com/AlgoLeadMe/AlgoLeadMe-8/pull/28)]
=======
---
96 changes: 96 additions & 0 deletions InSange/투포인터/2470.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

const int MAX_VAL = 1999999999;

int N, num, minVal, aanswer, banswer;
vector<int> acid; // »ê¼º
vector<int> basic; // ¿°±â¼º

bool cmp(int a, int b)
{
return a > b;
}

void Input()
{
cin >> N;

for (int i = 0; i < N; i++)
{
cin >> num;
(num > 0) ? acid.push_back(num) : basic.push_back(num);
}

sort(acid.begin(), acid.end());
sort(basic.begin(), basic.end(), cmp);

minVal = MAX_VAL;
}

void Solve()
{
int a_index = 0;
int b_index = 0;
while (a_index < acid.size() && b_index < basic.size())
{
int anum, bnum;
anum = acid[a_index];
bnum = basic[b_index];

if (abs(anum + bnum) < minVal)
{
aanswer = anum;
banswer = bnum;
minVal = abs(anum + bnum);
}

(abs(anum) > abs(bnum)) ? b_index++ : a_index++;
}

int sum;
if (acid.size() > 1)
{
sum = abs(acid[0] + acid[1]);
if (sum < minVal)
{
aanswer = acid[1];
banswer = acid[0];
}
}
if (basic.size() > 1)
{
sum = abs(basic[0] + basic[1]);
if (sum < minVal)
{
aanswer = basic[0];
banswer = basic[1];
}
}
if (acid.empty())
{
aanswer = basic[0];
banswer = basic[1];
}
if (basic.empty())
{
aanswer = acid[1];
banswer = acid[0];
}

cout << banswer << " " << aanswer;
}

int main()
{
cin.tie(nullptr);
ios::sync_with_stdio(false);

Input();
Solve();

return 0;
}

0 comments on commit 894a6a3

Please sign in to comment.