[Programmers] Lv2. μ«μ λΈλ‘ | C++
2023. 7. 4. 19:26γCoding Test/Programmers
πλ¬Έμ 보λ¬κ°κΈ°
π¨π»νμ΄ κ³Όμ
- nλ²μ§Έ λΈλ‘μ λμ¬μ§ μ«μλ nμ΄ μμμΌ κ²½μ°μ 1, μλ κ²½μ°μλ 10,000,000λ³΄λ€ μμ μ μΌ ν° μ½μμ λλ€.
- μ κ³±κ·Ό λ°©μμ μ΄μ©νμ¬ μ½μμ μμλ₯Ό μ°Ύλ λ°μ μκ°μ ν¨μ¨μ μΌλ‘ μ μ½ν μ μμ΅λλ€. νμ¬ μ κ²νλ €λ μ«μλ₯Ό iλΌκ³ νλ€λ©΄,
- n / i \( \leq 10,000,000 \) μ΄λΌλ©΄, n / iκ° κ°μ₯ ν° μ½μκ° λ©λλ€. κ°μ₯ ν° μ½μλ₯Ό μ°ΎμμΌλ―λ‘ λ°λ³΅λ¬Έμ μ’ λ£ν©λλ€.
- μλλΌλ©΄, 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 |