본문 바로가기
반응형

Algorithm/문제풀이3

Pancake Sorting n = [56,324,23,24,54,83,34] def filp(array, count=0): #배열의 길이 l = len(array) #배열의 길이와 count의 횟수가 같아진다면, 종료 if count == l: return array #배열의 0~(l-count)까지의 최대값 maxi = max(array[:l-count]) #최대값의 배열에서의 위치. index = array.index(maxi) #찾은 maxi를 배열의 첫번째로 위치하게 하고, array = array[0:index+1][::-1] + array[index+1:] #그리고 찾은 maxi가 l-count의 위치로 전체 배열을 역전한다. array = list(reversed(array[0:l-count])) + array[l-c.. 2024. 3. 30.
배열의 원소의 총합 계산하기 n = [13,6,9,8,12] def total(array, sum=0): #array의 비교할 것이 남아있지 않다면, if not array: #sum을 넘기면서 프로그램을 종료한다. return sum #sum에 첫번째 원소를 더한다. sum += array[0] #이미 더한 원소를 빼기위해서 0번째 원소를 뺀 배열과 더해져있는 sum을 리턴한다. return total(array[1:], sum) print(total(n))해당 함수의 시간복잡도는 배열의 길이의 비례만큼 실행되기 때문에 시간복잡도는 $O(n)$이다. n = [13,6,9,8,12] def min(array, com): #array의 비교할 것이 남아있지 않다면, if not array: #com을 넘기면서 프로그램을 종료한다. r.. 2024. 3. 30.
배열에서 최솟값 찾기 n = [13,6,9,8,12] def min(array, com): # array의 비교할 것이 남아있지 않다면, if not array: # com을 넘기면서 프로그램을 종료한다. return com # 배열의 첫번째를 now로 선언. now = array[0] # now가 com보다 작다면, if now < com: # 배열의 첫번째수가 비교하는 수보다 작으면, now를 com로 대체한다. return min(array[1:], now) # now가 com보다 작지 않다면, else: # 배열의 첫번째가 비교하는 수보다 작지 않다면, com을 유지한다. return min(array[1:], com) print(min(n, n[0])) 해당 함수의 시간복잡도는 배열의 길이의 비례만큼 실행되기 때문에.. 2023. 8. 7.
728x90
반응형