Programming/자료구조

def bubble_sort(array): n = len(array) for i in range(n - 1): for j in range(n - i - 1): if array[j] > array[j + 1]: array[j], array[j + 1] = array[j + 1], array[j] return arraybubble_sort(input)print("정답 = [1, 2, 4, 6, 9] / 현재 풀이 값 = ",bubble_sort([4, 6, 2, 9, 1]))print("정답 = [-1, 3, 9, 17] / 현재 풀이 값 = ",bubble_sort([3,-1,17,9]))print("정답 = [-3, 32, 44,..

문제Q. 링크드 리스트의 끝에서 K번째 값을 반환하시오.[6] -> [7] -> [8] # 이런 링크드 리스트가 입력되었을 때, # 끝에서 2번째 값은 7을 반환해야 합니다! 접근 방법 11. 전체 Linked List의 길이를 구하는 함수 get_len() 함수 구현2. 특정 인덱스의 노드를 찾는 함수 get_node() 함수 구현3. 1의 함수를 이용해 구한 Linked List의 전체 길이에서 K를 빼면 찾고자 하는 노드의 인덱스가 됨4. 2의 함수를 이용해 3에서 구한 인덱스로 찾고자 하는 노드를 찾음class Node: def __init__(self, data): self.data = data s..

finding_target = 2finding_numbers = [0, 3, 5, 6, 1, 2, 4]def is_exist_target_number_binary(target, array): array = sorted(array) # index setting cur_min = 0 cur_max = len(array) - 1 cur_search = (cur_min + cur_max) // 2 while cur_min target cur_max = cur_search - 1 cur_search = (cur_min + cur_max) // 2 return Falseresult = is_exist_target_number_binary(fin..

Q. 다음과 같은 두 링크드 리스트를 입력받았을 때, 합산한 값을 반환하시오. 예를 들어 아래와 같은 링크드 리스트를 입력받았다면, 각각 678, 354 이므로 두개의 총합 678 + 354 = 1032 를 반환해야 한다. 단, 각 노드의 데이터는 한자리 수 숫자만 들어갈 수 있다. 접근 방법1. get_num() 함수를 통해 링크드리스트를 숫자로 변환한다 (ex. [6]-[7]-[8] → 678)2. 이를 위해 get_len() 함수를 통해 전체 링크드리스트의 길이를 구한다3. get_node() 함수를 통해 각 인덱스 위치의 데이터 값을 구한다4. 2에서 구한 길이를 통해 맨 마지막 위치의 index를 파악하고, 여기서부터 역순으로 링크드리스트의 자릿수와 3의 데이터값을 곱해 더한다 class Nod..

class Node: def __init__(self, data): self.data = data self.next = Noneclass LinkedList: def __init__(self, value): self.head = Node(value) def append(self, value): cur = self.head while cur.next is not None: cur = cur.next cur.next = Node(value) def print_all(self): cur = self.head while cur is not None: p..