-
[c++] 백준 2559번: 수열알고리즘 2022. 6. 12. 18:20
문제풀이
1. 주어진 입력을 받는다.
2. 첫 날의 온도가 저장된 인덱스를 시작 포인터로 잡는다.
3. 만약 연속된 5일의 온도 중 최대 온도를 구한다면 1 ~ 5일까지 합을 구한 후 6일부터는 시작 포인터가 가르키는 인덱스의 온도를 빼준다.
코드
#include <iostream> #include <algorithm> #define MAX 100001 using namespace std; int main() { int n, k; cin >> n >> k; int start_point = 1; int arr[MAX] = { 0 }; for (int i = 1; i <= n; i++) { cin >> arr[i]; } int result = -987654321; int sum = 0; for (int i = 1; i <= n; i++) { sum += arr[i]; if (i >= k) { result = max(result, sum); sum -= arr[start_point++]; } } cout << result; return 0; }
'알고리즘' 카테고리의 다른 글
[c++] 백준 10709번: 기상캐스터 (0) 2022.06.14 [c++][그리디] 백준 2828번: 사과 담기 게임 (0) 2022.05.29 [c++] 백준 3986번: 좋은 단어 (0) 2022.05.21 [c++] 백준 9996번: 한국이 그리울 땐 서버에 접속하지 (0) 2022.05.20 [c++] 백준 1620번: 나는야 포켓몬 마스터 이다솜 (0) 2022.05.15