atcoder (abc301) B-Fill the Gaps 間違いと正解例
・間違いの解答。insertを使うとインデックスがずれてうまくいかない。
N=int(input()) A=list(map(int,input().split())) for i in range(N-1): da=abs(A[i]-A[i+1]) if da!=1: if A[i]<A[i+1]: for j in range(1,da): A.insert(i+j,A[i]+j) else: for k in range(1,da): A.insert(i+k,A[i]-k) print(*A)
・正解例。ansというリストを作りそれにappendしていく。インデックスがずれない。
N=int(input()) A=list(map(int,input().split())) ans=[] for i in range(N-1): da=abs(A[i]-A[i+1]) if da!=1: ans.append(A[i]) if A[i]<A[i+1]: for j in range(1,da): ans.append(A[i]+j) else: for k in range(1,da): ans.append(A[i]-k) elif da==1: ans.append(A[i]) ans.append(A[N-1]) print(*ans)