처음에 lastNum 대신에 벡터로 뒤에 계속 숫자를 넣어줬었는데 그거 때문에 메모리 초과가 되었다. 마지막 값만 필요해서 굳이 벡터를 사용할 필요가 없는데 반복해서 최기화하고 내부에 값을 넣는것이 문제였던 것 같다. 항상 메모리는 신경 안쓰고 문제를 풀었는데 이제는 메모리도 신경쓰면서 풀어야겠다...

#include <iostream>
#include <vector>
using namespace std;
int main(void){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
int k;
int min = 1000000000;
int result;
bool right = false;
bool pass;
int lastNum;
cin>>n;
vector<int> vnum;
for(int i=0;i<n;i++){
int num;
cin>>num;
vnum.push_back(num);
if(i != 0){
if(min > vnum[i] - vnum[i-1]){
min = vnum[i] - vnum[i-1];
}
}
}
while(1){
lastNum = vnum[0];
pass = false;
result = 0;
for(int i=0;i<n-1;i++){
while(1){
k = lastNum + min;
if(k > vnum[i+1]){
pass = true;
break;
} else if(k == vnum[i+1]){
lastNum = k;
break;
}else{
result++;
lastNum = k;
}
}
if(pass){
break;
}
}
min--;
if(pass)continue;
cout<<result<<'\n';
break;
}
}