-
Notifications
You must be signed in to change notification settings - Fork 2
19-flydongwoo #71
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
19-flydongwoo #71
Conversation
|
μ¬λΌμ΄λ© μλμ°λ₯Ό μ¬μ©νλ λ²μ 리λ§μΈλνλ κ°λ¨ν λ¬Έμ λ€μ. μΌλ°μ μΈ νμ΄λ‘λ λ°λ³΅λ¬Έμ λλ©΄μ λ΄λΆμμ kλ§νΌμ λ λ€μ λ°λ³΅νλ©° λκ³ , ν©μ ꡬνλ©΄μ maxκ°μ κ°±μ νλ μμ΄λμ΄λ₯Ό λ μ¬λ¦΄ μ μμ§λ§, κ·Έλ κ² λλ€λ©΄ μ΅μ μ μκ° λ³΅μ‘λμμλ O(N^2)κ° λλ―λ‘ μκ°μ΄κ³Όλ₯Ό λ¨Ήμ μ μμ΅λλ€. λ°λΌμ 0λ² μΈλ±μ€λΆν° K - 1λ² μΈλ±μ€κΉμ§μ λ°°μ΄ ν©μ ꡬν΄λ λ€, 맨 μ λΆλΆμ λΉΌκ³ λ§¨ λ· λΆλΆ μλ‘μ΄ μΈλ±μ€ κ°μ μΆκ°νλ μμΌλ‘ κ°μ κ°±μ ν΄κ°λ μκ°λ³΅μ‘λκ° O(N)μΈ νμ΄λ₯Ό λ μ¬λ¦΄ μ μμ΅λλ€. MAX_SUMμ μ΄κΈ° κ°μ λ΄κ³ μμ΄μΌ νλλ°, μ΄ λ°°μ΄μ μμκ° λ΄κΈΈ μ μμ΅λλ€. λ°λΌμ 0μ΄ μλλΌ μ€μ¬νλ κ°λ€μ κ³μ°ν΄μ λ΄μ λμ΄μΌ νλ―λ‘ λ°°μ΄ μ λΆλΆ Kκ°λ₯Ό ν©ν΄μ μ΄κΈ°νν΄ λμ΄μΌ ν©λλ€. μλλ μ μΆ μ½λμ λλ€. 리λ§μΈλνκΈ° μ’μ λ¬Έμ μμ΄μ. κ³ μνμ ¨μ΅λλ€! μμ΄/c++#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(0);
//freopen("test.txt", "rt", stdin);
int n, m;
cin >> n >> m;
vector<int> arr(n);
for(int i = 0; i < n; i++)
{
cin >> arr[i];
}
int sum = 0;
for(int i = 0; i < m; i++)
{
sum += arr[i];
}
int ans = sum;
for(int i = m; i < n; i++)
{
sum = sum - arr[i - m] + arr[i];
ans = max(ans, sum);
}
cout << ans;
return 0;
}
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
1λ
μ μ C++λ‘ νμλ λ¬Έμ λΌ κ°λ¨νκ² λ¦¬λ§μΈλλ§ νκ³ κ°λλ€.
μ΄λλ μ¬λΌμ΄λ© μλμ°λ μκ°λͺ»νκ³ λμ ν©(prefix sum) κΈ°λ²μΌλ‘ λ¬Έμ λ₯Ό νμλ€μ.
λμ ν©μΌλ‘ νλ©΄ κ΅¬κ° μΏΌλ¦¬(iλ²μ§ΈλΆν° jλ²μ§Έ κΉμ§ λνλ©΄ μΌλ§?)λ₯Ό μ½κ²ν μ μλ€λ μ₯μ μ΄ μμ΄μ λκ° κ΅¬κ° μΏΌλ¦¬μ λν λ¬Έμ λΌλ©΄ λμ ν©μ λ¨Όμ λ μ¬λ¦¬λ κ±° κ°μ΅λλ€.
13μ£Όμ°¨μ νμλ λ¬Έμ λ λμ ν©μ μ΄μ©νλ λ¬Έμ μμ΅λλ€.
μλλ νμ΄ μ½λμ λλ€.
#include <bits/stdc++.h>
using namespace std;
int n, k, tmp, psum[100001], ret = -1e9;
int main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cin >> n >> k;
for (int i = 1; i <= n; i++){
cin >> tmp; psum[i] = psum[i - 1] + tmp;
}
for (int i = k; i <= n; i++){
ret = max(ret, psum[i] - psum[i - k]);
}
cout << ret << '\n';
return 0;
}μ§λ¬Έμ λν΄ λ΅μ νμλ©΄...
Q1. κ°μ μμκ° λ€μ΄κ° μ μκΈ° λλ¬Έμ λͺ¨λ κ°μ΄ μμμΈ μΌμ΄μ€λΌλ©΄ 0λ³΄λ€ μμ κ°μ΄ μ΅μκ°μ΄ λ μ μμ΄μ λ¬Έμ κ° λ μ μμ΅λλ€! κ·Έλμ μ΄κΈ°κ°μ μ€μ λ‘ μλ κ° μ€ νλλ‘ μ€μ νκ±°λ μλλ©΄ μ νμ΄μ²λΌ μμμΈ μμ² μμ μλ‘ μ΄κΈ°νν΄μΌν©λλ€.
Q2. μ νμ΄λ μ΄κΈ°κ°μ μ μ€μ ν΄μ£Όκ³ μκΈ° λλ¬Έμ κ°μ΄ μμμ¬λ μλ¬΄λ° μκ΄μ΄ μμ΅λλ€.
Q3. K == N μ΄λΌλ μκ°λ³΅μ‘λ κ΄μ μμλ λͺ¨λ
Q4. N β₯ KλΌλ 보μ₯μ΄ μμΌλ©΄ κ·Έλ₯ μμΈ μ²λ¦¬λ₯Ό ν΄μ€μΌν κ±° κ°μλ°μ? λ¬Έμ κ° μ±λ¦½νμ§ μμ΅λλ€.
μκ³ νμ ¨μ΅λλ€!
|
μ λ 맨 μ²μ kλ²μ§Έ λ§νΌ λν κ° sum λ³μμ λμ
νκ³ , νλμ©λΉΌκ³ νλμ© λν΄κ°λ κ΅¬μ‘°λ‘ νμμ΅λλ€. #include <bits/stdc++.h>
using namespace std;
int main() {
freopen("input.txt", "rt", stdin);
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n, k; cin >> n >> k;
vector<int> v(n);
for(int i = 0; i < n; i++) {
cin >> v[i];
}
int sum = 0;
for(int i = 0; i < k; i++) sum += v[i];
int res = sum;
for(int i = k; i < n; i++) {
sum += v[i]; sum -= v[i - k];
res = max(res, sum);
}
cout << res;
return 0;
}
|
π λ¬Έμ λ§ν¬
https://www.acmicpc.net/problem/2559
βοΈ μμλ μκ°
10λΆ
β¨ μλ μ½λ
μ½μ§λ§ μμν κ°λμ μ겨주λ λ¬Έμ κ°μ Έμμ΅λλ€!
λ¬Έμ λ₯Ό μ§μ νμ΄λ³΄μ ¨λ€λ©΄, μ κ° μ΄ λ¬Έμ λ₯Ό μ νν μ΄μ λ₯Ό μκ² λμ€ κ²μ΄λΌ λ―Ώμ΅λλ€.
ν¬κ² 볡μ‘νμ§ μμ΅λλ€.
μ²μ Kκ°μ ν©μ κ΅¬ν΄ window_sumμ μ μ₯ν ν
i=K λΆν° N-1κΉμ§ ν μΉΈμ© "μ°½λ¬Έ"μ μ€λ₯Έμͺ½μΌλ‘ λ°λ©°,
μΌμͺ½μΌλ‘ λΉ μ§λ κ°μ λΉΌκ³ ,
μλ‘ λ€μ΄μ€λ κ°μ λν΄μ
λ§€λ² max_sumμ κ°±μ νλ©΄ λ©λλ€!
μκ°λ³΅μ‘λλ O(N)μμ λλλ μμ£Ό κ°λ¨ν λ¬Έμ μ λλ€.
μ λ μμ νκ² long longμ μ¬μ©νλ€μ
μ μ½λλ₯Ό 보μμ£
Q1. μ κ° max_sumμ 0μ΄ μλλΌ window_sumμΌλ‘ μ΄κΈ°νν μ΄μ λ μ νν 무μμΌκΉμ?
Q2. κ°μ΄ μμμΌ λ μ΄λ€ λ¬Έμ κ° λ°μν κΉμ?
Q3. λ§μ½ Kμ Nμ΄ κ°μμ§λ©΄ μ±λ₯μ λ³νκ° μμκΉμ?
Q4. λ¬Έμ 쑰건 μ€ N β₯ KλΌλ 보μ₯μ΄ μλ€λ©΄ μ΄λ»κ² μμ ν΄μΌν κΉμ?
prefix sumμΌλ‘λ μ΄ λ¬Έμ λ₯Ό ν μ μλ κ²μΌλ‘ μκ³ μμ΅λλ€!
λμ ν΄λ³΄μλ κ² μΆμ²λ릴κ²μ!
π μλ‘κ² μκ²λ λ΄μ©
μ¬λΌμ΄λ© μλμ° κ°λ³κ² 리λ§μΈλνκ³ κ°λ μ£Όμ°¨μμ΅λλ€ :)