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

미친 작가에 n 문자를 입력 한 후 최종 문자 수를 계산하는 C++ 프로그램

<시간/>

n개의 요소가 있는 배열 A가 있고 다른 값 c가 있다고 가정합니다. 우리 시스템에는 문자를 입력할 수 있는 미친 워드 프로세서가 있지만 연속 c초 동안 입력하지 않으면 작성된 모든 문자가 제거됩니다. A[i]는 i번째 문자를 입력한 시간을 나타냅니다. n 문자를 모두 입력한 후 화면에 남아 있을 최종 문자 수를 찾아야 합니다.

따라서 입력이 A =[1, 3, 8, 14, 19, 20]과 같으면; c =5이면 출력은 3이 됩니다. 두 번째 8에서는 화면에 3개의 단어가 있기 때문입니다. 그리고 13초에서 모든 것이 사라집니다. 14초와 19초에서 두 글자를 더 입력하고, 마지막으로 두 번째 20초에서 한 글자를 더 입력하여 총 3개의 글자가 화면에 남습니다.

단계

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

s := 1
n := size of A
for initialize i := 1, when i < n, update (increase i by 1), do:
   if (A[i] - A[i - 1]) <= c, then:
      (increase s by 1)
   Otherwise
      s := 1
return s

예시

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

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

int solve(vector<int> A, int c) {
   int s = 1;
   int n = A.size();
   for (int i = 1; i < n; i++) {
      if ((A[i] - A[i - 1]) <= c) {
         s++;
      } else {
         s = 1;
      }
   }
   return s;
}
int main() {
   vector<int> A = { 1, 3, 8, 14, 19, 20 };
   int c = 5;
   cout << solve(A, c) << endl;
}

입력

{ 1, 3, 8, 14, 19, 20 }, 5

출력

3