내 코드가 짧고 반복 횟수가 적지 만 codechef.com에서 다른 코드가 허용되는 동안 시간 제한을 초과합니다. 이 코드보다반복이 더 많은 경우에도 한 코드가 다른 것보다 왜 더 빠릅니까?
def inverse(data,x):
temp=[]
for i in range(x):
temp.append(0)
for i in range(x):
temp[data[i]-1]=i+1
return temp
def main():
while 1:
x=input()
if not x:
return
data=raw_input().split(' ')
for i in range(len(data)):
data[i]=int(data[i])
temp = inverse(data,x)
if temp==data:
print 'ambiguous'
else:
print 'not ambiguous'
if __name__ == "__main__":
main()
빨리 :이 코드는 왜 코드는 codechef.com 에서 "모호한 순열"문제에 대한 솔루션입니다
while True:
output=[]
n= input()
if n==0: break
caseList= raw_input().split()
amb=1
for i in range(1, n+1):
output.append(str(caseList.index(str(i))+1))
if output==caseList:
print ("ambiguous")
else:
print ("not ambiguous")
이 저를 도와주세요 ...
문제의 링크 : http://www.codechef.com/problems/PERMUT2/ – jsbueno