(๋ฐฑ์ค/ C++) 1644 - ์์์ ์ฐ์ ํฉ๐ coding test/โฝ ๋ฐฑ์ค2022. 9. 6. 18:00
Table of Contents
728x90
๋ฐ์ํ
1644๋ฒ: ์์์ ์ฐ์ํฉ (acmicpc.net)
๋ฌธ์ ํค์๋
1. ์ฐ์๋ ์์์ ํฉ์ผ๋ก ๋ํ๋ผ ์ ์๋ ์์ฐ์
2. ์๊ธฐ ์์ ์ด ์์ ์ผ ๋๋ ์นด์ดํธ
ํด๊ฒฐ ๋ฐฉ๋ฒ
1. ์๋ผํ ์คํ ๋ค์ค์ ์ฒด ์๊ณ ๋ฆฌ์ฆ์ ํตํด N์ดํ(Nํฌํจ)์ ์์๋ฅผ ์ฐพ์ Vector์ ๋ฃ๋๋ค.
2. vector์ size๊ฐ 0์ด ์๋ ๊ฒฝ์ฐ ๋๊ฐ์ index(oneIdx, twoIdx)๋ vector์ ๋งจ ์ ์ธ๋ฑ์ค 0์ ๊ฐ์ง๋ค.
3 sum์ด N๋ณด๋ค ์์ผ๋ฉด twoIdx๋ฅผ ํด ๊ฒฝ์ฐ oneIdx๋ฅผ ์ฆ๊ฐ์ํจ๋ค.
โป sum์ one๊ณผ two ์ฌ์ด์ vector์ ํฉ
โผTwoIdx โฒ OneIdx
์ฝ๋
#include<iostream>
#include<vector>
#include<memory.h>
using namespace std;
// --- ์๋ผํ ์คํ
๋ค์ค ์ฑ ---
// --- ์ฐ์๋ ์์์ ํฉ ---
constexpr int limitedNumber = 4'000'000;
bool arr[limitedNumber];
vector<int> primeNumber;
int main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int N; cin >> N;
memset(arr, true, sizeof(arr));
arr[0] = arr[1] = false;
for (int i = 2; i <= N / 2; ++i) {
for (int j = i + i; j <= N; j+=i) {
arr[j] = false;
}
}
for (int i = 2; i <= N; ++i)
{
if (arr[i])
{
primeNumber.emplace_back(i);
}
}
int onePointIdx, twoPointIdx, counts = 0, sum = 0 ;
if (primeNumber.size() != 0)
{
onePointIdx = twoPointIdx = 0;
sum = primeNumber[onePointIdx];
}
else
{
cout << "0";
return 0;
}
while (onePointIdx <= twoPointIdx && twoPointIdx < primeNumber.size())
{
if (sum == N)
{
counts++;
twoPointIdx++;
if (twoPointIdx >= primeNumber.size())
break;
sum += primeNumber[twoPointIdx];
}
else if (sum < N)
{
twoPointIdx++;
if (twoPointIdx >= primeNumber.size())
break;
sum += primeNumber[twoPointIdx];
}
else if (sum > N)
{
sum -= primeNumber[onePointIdx];
onePointIdx++;
}
}
cout << counts;
return 0;
}
728x90
๋ฐ์ํ
'๐ coding test > โฝ ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
(๋ฐฑ์ค/ C++) 1450 - ๋ ์๋ฌธ์ , ์ด๋ถ ํ์ ์์ ํ์ ๊ทธ๋ ค๋ณด์! (0) | 2023.01.12 |
---|---|
(๋ฐฑ์ค/ C++) 2470 - ๋ ์ฉ์ก (0) | 2022.09.06 |
(๋ฐฑ์ค/ C++) 4673 - ์ ํ ๋๋ฒ (0) | 2022.09.02 |
(๋ฐฑ์ค/ C++) 11066 - ํ์ผํฉ์น๊ธฐ [๋๋ฌด ์ด๋ ค์ ๋ ..๋ฉํ ํํ] (0) | 2022.06.29 |
(๋ฐฑ์ค/c++) 16139 - ์ธ๊ฐ-์ปดํจํฐ ์ํธ์์ฉ (0) | 2022.06.27 |
@DoctorSunAhna :: ํํฌ์ฝ๋ฅ
์ ํ๋ ๊ฒ ๋ณด๋ค ๋ซ๊ฒ ์ง
ํฌ์คํ ์ด ์ข์๋ค๋ฉด "์ข์์โค๏ธ" ๋๋ "๊ตฌ๋ ๐๐ป" ํด์ฃผ์ธ์!