๋ฌธ์
์ฃผ๋ชฝ์ ์ฒ ๊ธฐ๊ตฐ์ ์์ฑํ๊ธฐ ์ํ ํ๋ก์ ํธ์ ๋์ฐ๋ค. ๊ทธ๋์ ์ผ์ฒ ๋์ฅ์ ํตํด ์ฒ ๊ธฐ๊ตฐ์ด ์ ์ ๊ฐ์ท์ ๋ง๋ค๊ฒ ํ์๋ค. ์ผ์ฒ ๋์ฅ์ ์ฃผ๋ชฝ์ ๋ช ์ ๋ฐ๋ฅด๊ธฐ ์ํ์ฌ ์ฐ๊ตฌ์ ์ฐฉ์ํ๋ ์ค ์๋์ ๊ฐ์ ์ฌ์ค์ ๋ฐ๊ฒฌํ๊ฒ ๋์๋ค.
๊ฐ์ท์ ๋ง๋๋ ์ฌ๋ฃ๋ค์ ๊ฐ๊ฐ ๊ณ ์ ํ ๋ฒํธ๋ฅผ ๊ฐ์ง๊ณ ์๋ค. ๊ฐ์ท์ ๋ ๊ฐ์ ์ฌ๋ฃ๋ก ๋ง๋๋๋ฐ ๋ ์ฌ๋ฃ์ ๊ณ ์ ํ ๋ฒํธ๋ฅผ ํฉ์ณ์ M(1 ≤ M ≤ 10,000,000)์ด ๋๋ฉด ๊ฐ์ท์ด ๋ง๋ค์ด ์ง๊ฒ ๋๋ค. ์ผ์ฒ ๋์ฅ์ ์์ ์ด ๋ง๋ค๊ณ ์๋ ์ฌ๋ฃ๋ฅผ ๊ฐ์ง๊ณ ๊ฐ์ท์ ๋ช ๊ฐ๋ ๋ง๋ค ์ ์๋์ง ๊ถ๊ธํด์ก๋ค. ์ด๋ฌํ ๊ถ๊ธ์ฆ์ ํ์ด ์ฃผ๊ธฐ ์ํ์ฌ N(1 ≤ N ≤ 15,000) ๊ฐ์ ์ฌ๋ฃ์ M์ด ์ฃผ์ด์ก์ ๋ ๋ช ๊ฐ์ ๊ฐ์ท์ ๋ง๋ค ์ ์๋์ง๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ฒซ์งธ ์ค์๋ ์ฌ๋ฃ์ ๊ฐ์ N(1 ≤ N ≤ 15,000)์ด ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ฒ์งธ ์ค์๋ ๊ฐ์ท์ ๋ง๋๋๋ฐ ํ์ํ ์ M(1 ≤ M ≤ 10,000,000) ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ง๋ง์ผ๋ก ์ ์งธ ์ค์๋ N๊ฐ์ ์ฌ๋ฃ๋ค์ด ๊ฐ์ง ๊ณ ์ ํ ๋ฒํธ๋ค์ด ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค. ๊ณ ์ ํ ๋ฒํธ๋ 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์์ฐ์์ด๋ค.
ํ์ด
์์ด๋์ด
- n : ์ฌ๋ฃ์ ์
- m : ๊ฐ์ท์ ๋ง๋ค ์ ์๋ ์ฌ๋ฃ ๊ณ ์ ๋ฒํธ์ ํฉ
- i : ์ฌ๋ฃ ๊ณ ์ ๋ฒํธ
- r : m - i ํ ๋๋จธ์ง ์ฌ๋ฃ ๊ณ ์ ๋ฒํธ
- m ์ ์ต๋ ํฌ๊ธฐ๋ 10,000,000 ์ด๊ณ i ์ ์ต์ ํฌ๊ธฐ๋ 1 ์ด๋ค.
- ๋๋ฌธ์ 15,000 < r < 9,999,999 ์ผ ์ ์๋ค.
- ๋ฐ๋ผ์ ์ฌ๋ฃ๋ฅผ ๋ด๋ ๋ฐฐ์ด์ ๊ธธ์ด๋ ์ต์ 10,000,000 ์ฌ์ผ ํ๋ค.
#include <bits/stdc++.h>
using namespace std;
long long n, m, cnt = 0L;
long long arr[10000010] = {};
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
long long input = 0L;
cin >> input;
arr[input]++;
}
int size = sizeof(arr) / sizeof(arr[0]);
for (int i = 0; i < size; i++) {
long r = m - i;
if (r < 0) continue;
if (arr[i] == 0 || arr[r] == 0) continue;
if (i == r) continue;
arr[i] = 0;
arr[r] = 0;
cnt++;
}
cout << cnt;
}
ํ์ด - 2
์์ด๋์ด
- ์์์ ๊ด๊ณ์์ด 2๊ฐ๋ฅผ ๋ํ ๊ฐ์ด m ์ธ ๊ฒฝ์ฐ๋ฅผ ์ฐพ๋๋ค.
- nC2, ์กฐํฉ์ผ๋ก ํ ์ ์๋ค.
- ์ฃผ์ด์ง ์ฌ๋ฃ์ ์๋งํผ ์ ์ง์ ์ผ๋ก ํ์ฌ ์ฌ๋ฃ์ ๋ค์ ์ฌ๋ฃ๋ฅผ ๋ํ ํ ๊ฐ์ด m ๊ณผ ๋์ผํ๋ค๋ฉด ์นด์ดํธํ๋ค.
๊ฒฐ๊ณผ
- ๋ฉ๋ชจ๋ฆฌ : 2080 KB
- ์๊ฐ : 96 ms
#include <bits/stdc++.h>
using namespace std;
int n, m = 0;
int arr[15010] = {};
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
if (200000 <= m) cout << 0;
else {
int cnt = 0;
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] + arr[j] == m) cnt++;
}
}
cout << cnt;
}
}
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค 4375] 1 (0) | 2023.04.23 |
---|---|
[๋ฐฑ์ค 3986] ์ข์ ๋จ์ด (0) | 2023.04.18 |
[๋ฐฑ์ค 1213] ํฐ๋ฆฐ๋๋กฌ ๋ง๋ค๊ธฐ (0) | 2023.04.16 |
[๋ฐฑ์ค 9375] ํจ์ ์ ์ ํด๋น (0) | 2023.04.14 |
[๋ฐฑ์ค 1620] ๋๋์ผ ํฌ์ผ๋ชฌ ๋ง์คํฐ ์ด๋ค์ (0) | 2023.04.12 |