DataStructures 알고리즘 체조 8 매일 주가(간단화를 위한 정수)를 요소로 한 배열이 전달되어 최대의 이익을 얻기 위해 매매 가격을 반환하는 알고리즘을 구현합시다. 단일 매매 이익을 극대화해야 합니다. 이익을 올릴 수 없는 배열이 전달되면 손실을 최소화하려고 합니다. 아래의 예에서는 최대 이익을 높이기 위한 매매 가격이 노란색과 녹색으로 강조되어 있습니다. Runtime Complexity O(n) 하루에 한 번만 주식을 매... DataStructures자바algorithmarray 알고리즘 체조 7 하나의 정수형 배열이 전달됩니다. 배열에서 다른 요소의 순서를 유지하면서 0과 같은 모든 요소를 왼쪽으로 이동시키는 알고리즘을 구현합시다. 다음 정수 배열을 살펴 보겠습니다. 모든 0과 같은 요소를 왼쪽으로 이동하면 배열은 다음과 같습니다. (0이 아닌 요소의 순서를 유지해야 함) Runtime Complexity O(n) 0 요소를 배열에서 찾아야합니다. Memory Complexity O... DataStructuresalgorithmarraycounter자바 알고리즘 체조 6 정수형의 소트 된 배열과, 지정된 요소(key)가 위치하는 가장 낮은 인덱스(low index)와 높은 인덱스(high index)를 돌려준다. 다음 예제에서 low index와 high index는 다음과 같습니다. 키 : 1 low = 0 및 high = 0 키 : 2 low = 1 및 high = 1 키 : 5 low = 2 및 high = 9 키 : 20 low = 10 및 high ... DataStructuresBinaryalgorithmarray자바 알고리즘 체조 5 정수형의 배열과 정수 N(회전수)의 2개의 인수가 건네졌을 때, 배열의 요소를 N회(마이너스는 왼쪽으로, 플러스는 오른쪽에) 다음 배열이 전달되었다고 가정합니다. 회전 수 N이 -1 일 때 모든 요소가 왼쪽으로 하나씩 이동합니다. 또한, 회전 수 N이 2이면 모든 요소가 오른쪽으로 하나씩 두 번 이동합니다. 이 문제로 먼저 내가 먼저 떠올린, 역임 알고리즘은 회전 후 반드시 2개의 좌측, 우... DataStructures자바algorithmarray 알고리즘 체조 4 오름차순으로 정렬된 3개의 정수 배열에서 3개 배열 모두에 공통인 최소 수를 찾아야 합니다. 오름차순으로 정렬된 3개의 정수 배열이 주어지고, 3개의 배열 모두에 공통되는 최소의 수를 찾는 알고리즘을 구현한다. 다음 세 가지 배열을 살펴 보겠습니다. 해는 6 으로, 모든 배열에 공통되는 최소수입니다. 오름차순 배열을 활용한다. 3개의 포인터를 사용한다. Runtime Complexity O(... DataStructures알고리즘algorithm자바array 알고리즘 체조 16 병합 정렬은 정렬 알고리즘 중에서도 divide&conquer를 사용한 유명한 하나군요. 재귀적으로 분할해 가고, 다시 병합(병합)해 가는 것으로, 재정렬을 실현하려고 하는, 소트 알고리즘입니다. 이번에는 그 병합 정렬을 사용하여 배열이 아닌 링크 된 목록을 정렬하고 싶습니다. Runtime Complexity O(n(log(n)) n개의 목록을 병합하려면 n에 비례하는 시간이 걸립니다. (... DataStructuresLinkedListalgorithmmergesort자바 알고리즘 체조 15 두 개의 오름차순으로 정렬된 Singly Linked List가 인수로 전달됩니다. 둘을 병합하여 오름차순으로 정렬 된 링크 된 목록의 머리를 반환 값으로 반환하는 알고리즘. 다음과 같은 두 개의 링크된 목록이 있습니다. 이 두 개의 링크 된 목록을 정렬을 유지하고 병합하면 다음과 같은 단일 링크 된 목록이됩니다. Runtime Complexity O(m + n) 두 개의 포인터를 사용하여 ... DataStructures자바LinkedListalgorithm 알고리즘 체조 14 Singly Linked List의 head와 정수 "N"이 인수로 전달됩니다. head와 head에서 N번째 노드로 교환합니다. 반환값은 새로운 Linked list의 head입니다. N = 4의 예를 살펴 보겠습니다. head를 첫 번째로 네 번째 노드의 28과 head의 7을 교환하므로 다음과 같습니다. Runtime Complexity O(n) Linked List 에 대해서 주사할 ... DataStructures자바LinkedListalgorithm 알고리즘 체조 11 LinkedList의 head로부터 스캔해 가, 중복하는 노드가 있으면 삭제해, 중복이 없는 LinkedList의 head를 돌려줍니다. 다음의 LinkedList가 주어집니다. 데이터가 중복되는 28과 14를 삭제하면 다음의 LinkedList가 됩니다. Runtime Complexity O(n) 중복 여부를 정렬되지 않은 LinkedList를 스캔하므로 실행 시간은 O(n)입니다. Spa... DataStructuresLinkedListalgorithm자바HashSet 알고리즘 체조 3 임의의 수만큼 오른쪽으로 회전된 소트 끝난 배열과, 지정된 수(key)가 건네져 검색합니다. 임의의 수만큼 회전된 소트 끝난 배열로, 지정된 수(key)를 검색합니다. Key 가 존재하지 않는 경우는 -1 을 돌려줍니다. 이 배열에서 6회 회전을 실행하면 다음과 같이 바뀝니다. 선형 검색 O(n)은 허용되지 않는 솔루션입니다. 수정한 Binary Search를 생각한다. Runtime Com... DataStructuresrotatedArrayalgorithm검색자바 [입문] 이분 탐색 나무를 해설하면서 자력 실장해 보았다 이진 탐색 트리를 배우는 것으로, 데이터 구조와 알고리즘에 대한 이해를 깊게 하고 싶다. 파이썬에서 이진 탐색 트리와 데이터 구조를 구현한다. 데이터 구조를 일차원 목록에 컨볼 루션하면 구현이 쉬울 수 있지만 트리 데이터 구조에 대한 이해를 높이기 위해 노드 클래스를 정의하여 이진 검색 트리를 구현합니다. 이진 탐색 트리 정의 2분 탐색 트리란, 순서 관계가 정의되고 있는 노드의 값(수치나 ... DataStructures파이썬algorithm 1. The Basics of Linked Lists 1. What's special about linked lists? 순차적으로 연결된 value를 가진 data structure array보다 insertion/deletion이 효율적 value의 메모리 주소들이 인접하지 않아도된다. 2. Linked lists vs arrays 노드를 접근할 경우 array는 메모리에 인접한채로 있기 때문에, index를 통해 빠르게 접근 가능 -> O... DataStructuresDataStructures 2. recursive Linkded List 1. Linked List 재귀 구현 2. Linked List Sum While문 / 재귀 참고 : codebyte - Recursive Linked List from Scratch... DataStructuresDataStructures
알고리즘 체조 8 매일 주가(간단화를 위한 정수)를 요소로 한 배열이 전달되어 최대의 이익을 얻기 위해 매매 가격을 반환하는 알고리즘을 구현합시다. 단일 매매 이익을 극대화해야 합니다. 이익을 올릴 수 없는 배열이 전달되면 손실을 최소화하려고 합니다. 아래의 예에서는 최대 이익을 높이기 위한 매매 가격이 노란색과 녹색으로 강조되어 있습니다. Runtime Complexity O(n) 하루에 한 번만 주식을 매... DataStructures자바algorithmarray 알고리즘 체조 7 하나의 정수형 배열이 전달됩니다. 배열에서 다른 요소의 순서를 유지하면서 0과 같은 모든 요소를 왼쪽으로 이동시키는 알고리즘을 구현합시다. 다음 정수 배열을 살펴 보겠습니다. 모든 0과 같은 요소를 왼쪽으로 이동하면 배열은 다음과 같습니다. (0이 아닌 요소의 순서를 유지해야 함) Runtime Complexity O(n) 0 요소를 배열에서 찾아야합니다. Memory Complexity O... DataStructuresalgorithmarraycounter자바 알고리즘 체조 6 정수형의 소트 된 배열과, 지정된 요소(key)가 위치하는 가장 낮은 인덱스(low index)와 높은 인덱스(high index)를 돌려준다. 다음 예제에서 low index와 high index는 다음과 같습니다. 키 : 1 low = 0 및 high = 0 키 : 2 low = 1 및 high = 1 키 : 5 low = 2 및 high = 9 키 : 20 low = 10 및 high ... DataStructuresBinaryalgorithmarray자바 알고리즘 체조 5 정수형의 배열과 정수 N(회전수)의 2개의 인수가 건네졌을 때, 배열의 요소를 N회(마이너스는 왼쪽으로, 플러스는 오른쪽에) 다음 배열이 전달되었다고 가정합니다. 회전 수 N이 -1 일 때 모든 요소가 왼쪽으로 하나씩 이동합니다. 또한, 회전 수 N이 2이면 모든 요소가 오른쪽으로 하나씩 두 번 이동합니다. 이 문제로 먼저 내가 먼저 떠올린, 역임 알고리즘은 회전 후 반드시 2개의 좌측, 우... DataStructures자바algorithmarray 알고리즘 체조 4 오름차순으로 정렬된 3개의 정수 배열에서 3개 배열 모두에 공통인 최소 수를 찾아야 합니다. 오름차순으로 정렬된 3개의 정수 배열이 주어지고, 3개의 배열 모두에 공통되는 최소의 수를 찾는 알고리즘을 구현한다. 다음 세 가지 배열을 살펴 보겠습니다. 해는 6 으로, 모든 배열에 공통되는 최소수입니다. 오름차순 배열을 활용한다. 3개의 포인터를 사용한다. Runtime Complexity O(... DataStructures알고리즘algorithm자바array 알고리즘 체조 16 병합 정렬은 정렬 알고리즘 중에서도 divide&conquer를 사용한 유명한 하나군요. 재귀적으로 분할해 가고, 다시 병합(병합)해 가는 것으로, 재정렬을 실현하려고 하는, 소트 알고리즘입니다. 이번에는 그 병합 정렬을 사용하여 배열이 아닌 링크 된 목록을 정렬하고 싶습니다. Runtime Complexity O(n(log(n)) n개의 목록을 병합하려면 n에 비례하는 시간이 걸립니다. (... DataStructuresLinkedListalgorithmmergesort자바 알고리즘 체조 15 두 개의 오름차순으로 정렬된 Singly Linked List가 인수로 전달됩니다. 둘을 병합하여 오름차순으로 정렬 된 링크 된 목록의 머리를 반환 값으로 반환하는 알고리즘. 다음과 같은 두 개의 링크된 목록이 있습니다. 이 두 개의 링크 된 목록을 정렬을 유지하고 병합하면 다음과 같은 단일 링크 된 목록이됩니다. Runtime Complexity O(m + n) 두 개의 포인터를 사용하여 ... DataStructures자바LinkedListalgorithm 알고리즘 체조 14 Singly Linked List의 head와 정수 "N"이 인수로 전달됩니다. head와 head에서 N번째 노드로 교환합니다. 반환값은 새로운 Linked list의 head입니다. N = 4의 예를 살펴 보겠습니다. head를 첫 번째로 네 번째 노드의 28과 head의 7을 교환하므로 다음과 같습니다. Runtime Complexity O(n) Linked List 에 대해서 주사할 ... DataStructures자바LinkedListalgorithm 알고리즘 체조 11 LinkedList의 head로부터 스캔해 가, 중복하는 노드가 있으면 삭제해, 중복이 없는 LinkedList의 head를 돌려줍니다. 다음의 LinkedList가 주어집니다. 데이터가 중복되는 28과 14를 삭제하면 다음의 LinkedList가 됩니다. Runtime Complexity O(n) 중복 여부를 정렬되지 않은 LinkedList를 스캔하므로 실행 시간은 O(n)입니다. Spa... DataStructuresLinkedListalgorithm자바HashSet 알고리즘 체조 3 임의의 수만큼 오른쪽으로 회전된 소트 끝난 배열과, 지정된 수(key)가 건네져 검색합니다. 임의의 수만큼 회전된 소트 끝난 배열로, 지정된 수(key)를 검색합니다. Key 가 존재하지 않는 경우는 -1 을 돌려줍니다. 이 배열에서 6회 회전을 실행하면 다음과 같이 바뀝니다. 선형 검색 O(n)은 허용되지 않는 솔루션입니다. 수정한 Binary Search를 생각한다. Runtime Com... DataStructuresrotatedArrayalgorithm검색자바 [입문] 이분 탐색 나무를 해설하면서 자력 실장해 보았다 이진 탐색 트리를 배우는 것으로, 데이터 구조와 알고리즘에 대한 이해를 깊게 하고 싶다. 파이썬에서 이진 탐색 트리와 데이터 구조를 구현한다. 데이터 구조를 일차원 목록에 컨볼 루션하면 구현이 쉬울 수 있지만 트리 데이터 구조에 대한 이해를 높이기 위해 노드 클래스를 정의하여 이진 검색 트리를 구현합니다. 이진 탐색 트리 정의 2분 탐색 트리란, 순서 관계가 정의되고 있는 노드의 값(수치나 ... DataStructures파이썬algorithm 1. The Basics of Linked Lists 1. What's special about linked lists? 순차적으로 연결된 value를 가진 data structure array보다 insertion/deletion이 효율적 value의 메모리 주소들이 인접하지 않아도된다. 2. Linked lists vs arrays 노드를 접근할 경우 array는 메모리에 인접한채로 있기 때문에, index를 통해 빠르게 접근 가능 -> O... DataStructuresDataStructures 2. recursive Linkded List 1. Linked List 재귀 구현 2. Linked List Sum While문 / 재귀 참고 : codebyte - Recursive Linked List from Scratch... DataStructuresDataStructures