Problem Solving/BOJ

[백준 / BOJ] C++ 27496 발머의 피크 이론

nageune 2023. 2. 20. 16:41
728x90
반응형

27496번: 발머의 피크 이론

 

문제

https://www.acmicpc.net/problem/27496

 

27496번: 발머의 피크 이론

각 시간에 따른 혈중 알코올 농도는 {0.045, 0.089, 0.133, 0.131, 0.127}이다. 따라서 지금으로부터 2시간 후와 3시간 후, 총 두 시간 동안 혈중 알코올 농도를 유지할 수 있다.

www.acmicpc.net

 

 

풀이

대회 때 누적합으로 풀었다가 빼는 배열의 크기를 제한하기 어려웠다. 그래서 그냥 더하다면서 배열에 더한 값을 저장하고 시간이 지속 시간보다 커지면 차례대로 빼가면서 범위를 만족하는지 확인했다.

 

코드

#include <bits/stdc++.h>
using namespace std;

int main() {
  ios::sync_with_stdio(false);
  cin.tie(NULL);
  int N, L, ans = 0;
  long long sum = 0;
  cin >> N >> L;
  vector<int> v(N, 0);
  for (int i = 0; i < N; i++) {
    cin >> v[i];
    sum += v[i];
    if (i >= L) {
      sum -= v[i - L];
    }
    if (sum >= 129 && sum <= 138)
      ans++;
  }
  cout << ans << '\n';
  return 0;
}

 

728x90
반응형