n개의 요소가 있는 배열 A가 있다고 가정합니다. Amal은 90분 경기를 보고 싶어하는데 쉬는 시간이 없습니다. 1분은 흥미롭거나 지루할 수 있습니다. 연속 15분이 지루하면 Amal은 즉시 TV를 끕니다. 배열 A로 표시되는 n개의 흥미로운 시간이 있을 것입니다. Amal이 게임을 시청할 시간을 계산해야 합니다.
따라서 입력이 A =[7, 20, 88]과 같으면 출력은 35가 됩니다. 왜냐하면 20 후에도 여전히 게임을 35까지 시청한 다음 끄기 때문입니다.
단계
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
Define an array a of size: 100. n := size of A for initialize i := 1, when i <= n, update (increase i by 1), do: a[i] := A[i - 1] if a[i] - a[i - 1] > 15, then: Come out from the loop return minimum of (a[i - 1] + 15) and 90
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <bits/stdc++.h> using namespace std; int solve(vector<int> A){ int i, a[100]; int n = A.size(); for (i = 1; i <= n; i++){ a[i] = A[i - 1]; if (a[i] - a[i - 1] > 15) break; } return min(a[i - 1] + 15, 90); } int main(){ vector<int> A = { 7, 20, 88 }; cout << solve(A) << endl; }
입력
{ 7, 20, 88 }
출력
35