전체 글 (31) 썸네일형 리스트형 니트코드 11번 알고리즘: Merge Sort 니트코드 링크: https://neetcode.io/courses/dsa-for-beginners/11Top Down Merge Sort만 다룬다. Code# Implementation of MergeSortdef mergeSort(arr, s, e): if e - s + 1 # Merge in-placedef merge(arr, s, m, e): # Copy the sorted left & right halfs to temp arrays L = arr[s: m + 1] R = arr[m + 1: e + 1] i = 0 # index for L j = 0 # index for R k = s # index for arr # Merge the two sorted h.. 니트코드 10번 알고리즘 : Insertion Sort (Stable and Unstable Sort) 니트코등 링크 : https://neetcode.io/courses/dsa-for-beginners/10Sorting중 첫 번째 방식인 Insertion Sort이다.위의 사진과 같이 i 포인터를 옮겨가며 해당 원소부터 왼쪽에 있는 subarray를 정렬해가는 것이다. j 포인터를 사용해 i포인터가 가르키는 원소의 바로 왼쪽부터 비교해가며 위치를 swap하는 알고리즘이다. class Solution(object): def sortArray(self, nums): for i in range(1,len(nums)): j = i while (j >0 and nums[j-1] > nums[j] ): temp = nums[j-1] nums[j-1] = nums[j.. 6.26 코테 일지 (값의 크기와 연산 시간의 관계) 백준 1788 피보나치 수의 확장- 시간 복잡도 뿐만이 아닌 계산되는 값들의 크기도 시간에 영향을 준다. for _ in range(temp_n-1) : temp = second second = ( second + first ) first = temp if (n0 and n % 2 == 0) : print(-1) else : print(1) print(second % 1000000000 ) 처음 작성했던 코드이다. 분명히 피보나치를 반복적 방식으로 풀어 시간 복잡도가 O(n)이지만 시간 초과가 됐다. 처음에는 알고리즘의 문제라 생각해 캐쉬를 사용하는 반복적 동적 계획법으로 풀이 해봤으나 여전히 시간 초과가 됐다. 피보나치 함수의 일반항이 있다고 하여 사용해봤으나 n.. 이전 1 ··· 6 7 8 9 10 11 다음