✅ STUDY/Algorithm(3)
-
연결 리스트(LinkedList)
연결 리스트 연결 리스트란? 자료들을 반드시 연속적으로 배열시키지는 않고 임의의 기억공간에 기억시키되, 자료 항목의 순서에 따라 노드의 포인터 부분을 이용하여 서로 연결시킨 자료 구조입니다. 삽입과 삭제가 유연하다는 장점이 있습니다. 기본적 연결리스트 예) - Node로 구성되어있으며, 한 Node는 Data와 다음의 Link로 구성되어 있습니다. - 리스트의 맨 앞을 Head, 맨 뒤를 Tail이라고 칭합니다. [Node 클래스 정의] class Node: def __init__(self, item): self.data = item self.next = None 연결리스트는 Node들로 구성되어있으므로 Node클래스를 정의합니다. Node는 Data와 다음 노드를 가르키는 Link로 구성되어 있습니다...
2020.08.22 -
재귀 알고리즘
재귀 알고리즘 하나의 함수에서 자신을 다시 호출하여 작업을 수행하는 것 중요 – 생각보다 많은 종류의 문제가 재귀적으로 해결 가능함 모든 수의 합 vs 복잡성 측면: 재귀 알고리즘 O(n) vs 반복 알고리즘 O(n) 효율성 측면: 재귀 알고리즘은 좋지 않음 n! 을 구하는 알고리즘 def what(n): if n
2020.08.15 -
선형 배열(리스트) 정렬과 탐색
선형 배열 정렬과 탐색 배열 – 모두 같은 타입의 원소들을 순서대로 늘어놓은 것입니다. 파이썬에서는 배열 대신 리스트라는 용어를 사용합니다. 타입의 영향을 받지 않기 때문에, 어떠한 타입이던 들어갈 수 있습니다. 리스트 연산 (1) 원소 덧붙이기 - List.append(“new”) (2) 끝에서 꺼내기 - List.pop() = 위 두 사항은 순식간에 할 수 있는 일이며, 리스트의 길이와 무관(상수 시간) (3) 원소 삽입하기 - List.insert(3, 65) (4) 원소 삭제하기 - del(List[2]) or List.pop(2) del은 반환없이 삭제만 하는 기능, pop은 꺼내서 반환해주는 기능의 차이 = 위 두 사항은 리스트가 길면 길수록 오래 걸리는 일이며, 리스트의 길이에 비례(선형 시..
2020.08.15