[Programmers] Lv2. ์ซ์ ๋ธ๋ก | C++
2023. 7. 4. 19:26ใCoding Test/Programmers
๐๋ฌธ์ ๋ณด๋ฌ๊ฐ๊ธฐ
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๐จโ๐ปํ์ด ๊ณผ์
- n๋ฒ์งธ ๋ธ๋ก์ ๋์ฌ์ง ์ซ์๋ n์ด ์์์ผ ๊ฒฝ์ฐ์ 1, ์๋ ๊ฒฝ์ฐ์๋ 10,000,000๋ณด๋ค ์์ ์ ์ผ ํฐ ์ฝ์์ ๋๋ค.
- ์ ๊ณฑ๊ทผ ๋ฐฉ์์ ์ด์ฉํ์ฌ ์ฝ์์ ์์๋ฅผ ์ฐพ๋ ๋ฐ์ ์๊ฐ์ ํจ์จ์ ์ผ๋ก ์ ์ฝํ ์ ์์ต๋๋ค. ํ์ฌ ์ ๊ฒํ๋ ค๋ ์ซ์๋ฅผ i๋ผ๊ณ ํ๋ค๋ฉด,
- n / i
์ด๋ผ๋ฉด, n / i๊ฐ ๊ฐ์ฅ ํฐ ์ฝ์๊ฐ ๋ฉ๋๋ค. ๊ฐ์ฅ ํฐ ์ฝ์๋ฅผ ์ฐพ์์ผ๋ฏ๋ก ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํฉ๋๋ค. - ์๋๋ผ๋ฉด, i๋ฅผ ์ ํํ ํ์ ๋ค์ ๋ฃจํ๋ก ๋์ด๊ฐ๋๋ก ํฉ๋๋ค.
- n / i
- n์ด 1์ธ ๊ฒฝ์ฐ์๋ 0์ด ์ ํ ๋ธ๋ก์ด ์์ด์ผ ํ๋ฏ๋ก, ์ด ๋ถ๋ถ๋ง ์์ธ ์ฒ๋ฆฌ๋ฅผ ํด์ฃผ๋๋ก ํฉ๋๋ค.
๋ธ๋ก ์ซ์๊ฐ 10,000,000๋ณด๋ค ํฌ๋ฉด ์ ๋๋ค๋ ์ ์์ ๋ง์ด ํค๋งธ๋ ๋ฌธ์ ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
โ๏ธ์์ค ์ฝ๋ ๋ฐ ๊ฒฐ๊ณผ
#include <vector>
using namespace std;
const int MAX_VALUE = 10000000;
long long FindMaxDivisor(long long n) {
long long result = 1;
for (long long i = 2; i * i <= n; i++) {
if (n % i == 0) {
result = i;
if (n / i <= MAX_VALUE) {
result = n / i;
break;
}
}
}
return result;
}
vector<int> solution(long long begin, long long end) {
vector<int> answer;
for (long long i = begin; i <= end; i++) {
if (i == 1) {
answer.emplace_back(0);
continue;
}
answer.emplace_back(FindMaxDivisor(i));
}
return answer;
}

728x90
๋ฐ์ํ
'Coding Test > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] Lv2. ์๊ฒฉ ์์คํ | C++ (0) | 2023.07.06 |
---|---|
[Programmers] Lv2. ํผ์์ ํ๋ ํฑํํ | C++ (0) | 2023.07.05 |
[Programmers] Lv2. ๋ ์ ์ฌ์ด์ ์ ์ ์ | C++ (0) | 2023.07.03 |
[Programmers] Lv2. ์ฐ๋ฐ์์ด ์ ์ ๋ถ | C++ (0) | 2023.07.01 |
[Programmers] Lv2. ๋ํ์ค ๊ฒ์ | C++ (0) | 2023.07.01 |