[Programmers] Lv2. n^2 λ°°μ΄ μλ₯΄κΈ° | C++
2023. 6. 14. 21:32γCoding Test/Programmers
πλ¬Έμ 보λ¬κ°κΈ°
π¨π»νμ΄ κ³Όμ
\(n\)μ μ΅λ κ°μκ° μ²λ§ κ°λΌ, 2μ°¨μ λ°°μ΄μ λ§λ€μ΄ μλ₯Ό μ μ₯νκ³ , λλμ κ³Ό λͺ« μ°μ°μ ν΅ν΄ left ~ right μ¬μ΄μ μ«μλ§ μΆμΆνλ©΄ λμ§ μμκΉ μκ°νμ¬ μ½λλ₯Ό μ§°λλ°, μκ° μ΄κ³Όκ° λ¬μ΅λλ€. μκ°μ λ μ€μΌ λ°©λκ° νμνμ΅λλ€.
λ°©λ²μ λͺ¨μνλ μ€, (i, j)μ μ μ₯λλ μ«μλ max(i + 1, j + 1)μ΄λΌλ νΉμ±μ λ°κ²¬νμμ΅λλ€.
0 1 2 3
---------
0 | 1 2 3 4
1 | 2 2 3 4
2 | 3 3 3 4
3 | 4 4 4 4
// #1
(0, 2)μ μ ν μ«μλ? -> max(0 + 1, 2 + 1) = 3
// #2
(3, 1)μ μ ν μ«μλ? -> max(3 + 1, 1 + 1) = 4
μ΄μ κ°μ νΉμ±κ³Ό ν = left / n, μ΄ = left % nμ μ΄μ©νλ€λ©΄ λΉ λ₯΄κ² ꡬν μ μμ΅λλ€.
βοΈμμ€ μ½λ λ° κ²°κ³Ό
#include <vector>
using namespace std;
vector<int> solution(int n, long long left, long long right) {
vector<int> answer;
int row = left / n;
int col = left % n;
int count = right - left + 1;
for (int i = 0; i < count; i++) {
int num = max(row + 1, col + 1);
answer.push_back(num);
col++;
if (col == n) {
row += 1;
col = 0;
}
}
return answer;
}
728x90
λ°μν
'Coding Test > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] Lv2. μμ | C++ (0) | 2023.06.15 |
---|---|
[Programmers] Lv2. νλ ¬μ κ³±μ | C++ (0) | 2023.06.15 |
[Programmers] Lv2. μ°μ λΆλΆ μμ΄ ν©μ κ°μ | C++ (1) | 2023.06.14 |
[Programmers] Lv2. ꡬλͺ λ³΄νΈ | C++ (0) | 2023.06.13 |
[Programmers] Lv2. μ§μ§μ΄ μ κ±°νκΈ° | C++ (0) | 2023.06.12 |