Cody

Solution 364166

Submitted on 4 Dec 2013 by Alfonso Nieto-Castanon
  • Size: 108
  • This is the leading solution.
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

Test Suite

Test Status Code Input and Output
1   Pass
%% %Games Feb 2014 #1 vr=[0 0 1 0 5]'; %1 vL=[0 4 4 0 0]'; vd=[2 2 0 1 3]; vu=[3 0 0 2 0]; tic m=solve_skyscrapers(vr,vL,vd,vu) toc nr=length(vr); nrsum=nr*(nr+1)/2; assert(nr*nrsum==sum(m(:))) assert(nr==size(m,1)); assert(nr==size(m,2)); assert(all(sum(m)==nrsum)); assert(all(sum(m,2)==nrsum)); mt=m; % view right check vz=vr; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k vz=vd; % view down check for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k mt=fliplr(m); % view Left check vz=vL; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)); % Assert check of valid count end % if end % k mt=flipud(m); % view Up check vz=vu; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k
m = 4 1 2 5 3 3 5 4 2 1 5 4 1 3 2 2 3 5 1 4 1 2 3 4 5 Elapsed time is 4.628381 seconds.
2   Pass
%% %Games Feb 2014 #2 vr=[0 4 0 2 0]'; %2 vL=[5 1 0 0 0]'; vd=[0 0 3 0 0]; vu=[4 1 2 0 2]; tic m=solve_skyscrapers(vr,vL,vd,vu) toc nr=length(vr); nrsum=nr*(nr+1)/2; assert(nr*nrsum==sum(m(:))) assert(nr==size(m,1)); assert(nr==size(m,2)); assert(all(sum(m)==nrsum)); assert(all(sum(m,2)==nrsum)); mt=m; % view right check vz=vr; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k vz=vd; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k mt=fliplr(m); % view right check vz=vL; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)); % Assert check of valid count end % if end % k mt=flipud(m); vz=vu; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k
m = 5 4 3 2 1 2 3 4 1 5 4 2 1 5 3 3 1 5 4 2 1 5 2 3 4 Elapsed time is 5.693981 seconds.
3   Pass
%% %Games Feb 2014 #3 vr=[5 2 2 0 0]'; %3 vL=[0 3 0 3 4]'; vd=[5 0 0 0 0]; vu=[0 2 0 0 0]; tic m=solve_skyscrapers(vr,vL,vd,vu) toc nr=length(vr); nrsum=nr*(nr+1)/2; assert(nr*nrsum==sum(m(:))) assert(nr==size(m,1)); assert(nr==size(m,2)); assert(all(sum(m)==nrsum)); assert(all(sum(m,2)==nrsum)); mt=m; % view right check vz=vr; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k vz=vd; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k mt=fliplr(m); % view right check vz=vL; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)); % Assert check of valid count end % if end % k mt=flipud(m); vz=vu; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k
m = 1 2 3 4 5 2 5 4 1 3 3 1 2 5 4 4 3 5 2 1 5 4 1 3 2 Elapsed time is 0.162463 seconds.
4   Pass
%% %Games Feb 2014 #4 vr=[0 0 4 5 0]'; %4 vL=[0 0 0 0 0]'; vd=[2 0 2 3 0]; vu=[0 0 0 0 0]; tic m=solve_skyscrapers(vr,vL,vd,vu) toc nr=length(vr); nrsum=nr*(nr+1)/2; assert(nr*nrsum==sum(m(:))) assert(nr==size(m,1)); assert(nr==size(m,2)); assert(all(sum(m)==nrsum)); assert(all(sum(m,2)==nrsum)); mt=m; % view right check vz=vr; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k vz=vd; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k mt=fliplr(m); % view right check vz=vL; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)); % Assert check of valid count end % if end % k mt=flipud(m); vz=vu; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k
m = 4 5 2 1 3 3 1 5 2 4 2 3 4 5 1 1 2 3 4 5 5 4 1 3 2 Elapsed time is 4.942242 seconds.
5   Pass
%% %Games Feb 2014 #5 vr=[3 5 0 0 0]'; %5 vL=[0 0 4 0 0]'; vd=[0 0 0 0 0]; vu=[2 0 1 0 2]; tic m=solve_skyscrapers(vr,vL,vd,vu) toc nr=length(vr); nrsum=nr*(nr+1)/2; assert(nr*nrsum==sum(m(:))) assert(nr==size(m,1)); assert(nr==size(m,2)); assert(all(sum(m)==nrsum)); assert(all(sum(m,2)==nrsum)); mt=m; % view right check vz=vr; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k vz=vd; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k mt=fliplr(m); % view right check vz=vL; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)); % Assert check of valid count end % if end % k mt=flipud(m); vz=vu; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k
m = 2 3 1 5 4 1 2 3 4 5 5 4 2 3 1 3 5 4 1 2 4 1 5 2 3 Elapsed time is 1.701495 seconds.
6   Pass
%% vr=[0 0 3 0 0]'; %Games Feb 2014 #6 vL=[3 0 0 1 0]'; vd=[0 0 0 0 0]; vu=[5 2 0 0 0]; tic m=solve_skyscrapers(vr,vL,vd,vu) toc nr=length(vr); nrsum=nr*(nr+1)/2; assert(nr*nrsum==sum(m(:))) assert(nr==size(m,1)); assert(nr==size(m,2)); assert(all(sum(m)==nrsum)); assert(all(sum(m,2)==nrsum)); mt=m; % view right check vz=vr; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k vz=vd; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k mt=fliplr(m); % view right check vz=vL; for k=1:nr if vz(k)>0 c=1; shi=mt(k,1); for z=2:nr if mt(k,z)>shi shi=mt(k,z); c=c+1; end end % z c; vz(k); assert(c==vz(k)); % Assert check of valid count end % if end % k mt=flipud(m); vz=vu; for k=1:nr if vz(k)>0 c=1; shi=mt(1,k); for z=2:nr if mt(z,k)>shi shi=mt(z,k); c=c+1; end end % z c; vz(k); assert(c==vz(k)) % Assert check of valid count end % if end % k
m = 5 4 2 1 3 4 5 1 3 2 3 2 4 5 1 2 1 3 4 5 1 3 5 2 4 Elapsed time is 5.798012 seconds.