Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

책 읽기를 완료하는 데 걸리는 일수를 계산하는 C++ 코드

<시간/>

n개의 요소가 있는 배열 A가 있고 다른 값 t가 있다고 가정합니다. i번째 날 Amal은 일에 A[i]초를 보냅니다. 여가 시간에 그는 책을 읽습니다. 전체 책을 완료하는 데 t초가 걸립니다. 우리는 그가 책 전체를 읽는 데 며칠이 필요한지 알아내야 합니다.

따라서 입력이 A =[86400, 86398]과 같으면; t =2이면 출력은 2가 됩니다. 왜냐하면 하루는 86400초이고 첫째 날은 완전히 차단되기 때문입니다. 둘째 날에는 책을 완성하는 데 2초가 주어집니다.

단계

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

cnt := 1
n := size of A
for initialize i := 0, when i < n, update (increase i by 1), do:
   x := A[i]
   t := t - 86400 - x
   if t <= 0, then:
      return cnt
   (increase cnt by 1)

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

#include <bits/stdc++.h>
using namespace std;
int solve(vector<int> A, int t){
   int cnt = 1;
   int n = A.size();
   for (int i = 0; i < n; i++){
      int x = A[i];
      t -= 86400 - x;
      if (t <= 0){
         return cnt;
      }
      ++cnt;
   }
}
int main(){
   vector<int> A = { 86400, 86398 };
   int t = 2;
   cout << solve(A, t) << endl;
}

입력

{ 86400, 86398 }, 2

출력

2