파이썬 | 링크드 리스트 구현하기 (Prepend, Pop First, Get, Set) - 3
·
Computer Science/Python
2024.09.23 - [computer science/python] - 파이썬 | 링크드 리스트 구현하기 (Constructor, Append, Pop) - 2 파이썬 | 링크드 리스트 구현하기 (Constructor, Append, Pop) - 2전 글에서 링크드 리스트 구조에 대해서 공부했다면, 이제 파이썬으로 링크드 리스트를 구현하는 것을 도전해 봅시다. 링크드 리스트링크드 리스트를 구현할 때, 노드를 반복해서 생성하는 작olivecodelab.tistory.com전 글에서 컨스트럭터, Append, Pop 메서드에 대해서 공부해 보았습니다. 이번 글에서는 링크드 리스트의 Prepend, Pop First, Get, Set 메서드에 대해 살펴보겠습니다.  PrependPrepend는 새 노드를 리..
파이썬 | 링크드 리스트 구현하기 (Constructor, Append, Pop) - 2
·
Computer Science/Python
전 글에서 링크드 리스트 구조에 대해서 공부했다면, 이제 파이썬으로 링크드 리스트를 구현하는 것을 도전해 봅시다. 링크드 리스트링크드 리스트를 구현할 때, 노드를 반복해서 생성하는 작업을 효율적으로 처리할 필요가 있습니다. 각 노드는 데이터를 저장하고, 다음 노드를 가리키는 포인터를 포함하고 있기 때문에, 새로운 노드를 만들 때마다 이 구조를 동일하게 반복하게 되죠. 이를 반복하지 않도록 Node 클래스를 따로 만들어 관리할 수 있습니다. class LinkedList: def __init__(self, value): # create new Node def append(self, value): # create new Node # add Node to..
파이썬 | 링크드 리스트(Linked List) 구조, Big O - 1
·
Computer Science/Python
링크드 리스트는 데이터를 저장하는 선형 데이터 구조로, 노드(Node)로 구성되어 있습니다. 각 노드는 데이터와 다음 노드에 대한 참조(포인터)를 포함하고 있어, 데이터의 삽입과 삭제가 용이한 특징을 가지고 있습니다. 링크드 리스트의 구조링크드 리스트는 기본적으로 두 가지 구성 요소로 이루어져 있습니다:노드(Node): 각 노드는 두 가지 정보를 담고 있습니다.데이터(Data): 실제 저장하고자 하는 값입니다.다음 노드에 대한 포인터(Next): 다음 노드를 가리키는 참조입니다.헤드(Head): 링크드 리스트의 시작점을 가리키는 포인터입니다. 헤드를 통해 리스트에 접근할 수 있습니다.테일(Tail): 링크드 리스트의 마지막 노드를 가리키는 포인터입니다. 링크드 리스트의 끝을 나타내며, 일반적으로 테일은 ..
파이썬 | 포인터와 참조
·
Computer Science/Python
포인터와 참조는 메모리 주소와 객체에 대한 접근을 관리하는 방식으로, 주로 프로그래밍 언어에서 데이터 구조를 다룰 때 사용됩니다.포인터란?포인터는 특정 데이터의 메모리 주소를 저장하는 변수입니다. 포인터를 통해 데이터의 위치를 직접 참조하고 수정할 수 있습니다. 참조란?참조는 변수나 객체를 가리키는 이름입니다. 즉, 실제 데이터가 있는 곳을 가리키는 "주소"와 같은 역할을 합니다. 하지만 직접 데이터가 아니라 그 데이터에 대한 접근 경로를 제공합니다. 예시num1 = 11num2 = num1print("Before num2 value is updated:")print("num1 =", num1)print("num2 =", num2)print("\nnum1 points to:", id(num1))print..
파이썬 | 객체 지향 프로그래밍(OOP), 클래스(Class), 생성자(Constructor)
·
Computer Science/Python
객체 지향 프로그래밍(OOP)은 데이터를 객체 형태로 모델링하여 프로그램을 구성하는 방법입니다. 이 글에서는 클래스와 생성자, 그리고 이들을 활용하여 객체를 생성하고 속성을 관리하는 방법에 대해 설명하겠습니다. 클래스(Class)클래스는 객체를 생성하기 위한 청사진입니다. 클래스는 속성(데이터)과 메서드(함수)를 정의하여, 객체가 어떤 데이터를 가질 수 있고 어떤 동작을 수행할 수 있는지를 명시합니다. class Cookie: def __init__(self, color): self.color = color #__init__ 생성자를 사용하여 객체의 color 속성을 초기화합니다__init__ 메서드는 생성자로, 객체가 생성될 때 호출되어 초기화 작업을 수행합니다. 이 메서드는 각 객체..
파이썬 | 시간 복잡도(Time Complexity), Big O, O(n), O(n^2), O(1), O(log n), O(a + b)
·
Computer Science/Python
시간 복잡도(Time Complexity)란?시간 복잡도는 알고리즘이 실행되는 데 걸리는 시간을 입력 크기 n에 따라 분석하는 방법입니다. 이는 알고리즘의 효율성을 평가하는 중요한 요소 중 하나로, 입력 데이터가 커질수록 실행 시간이 어떻게 변하는지를 측정합니다. 일반적으로 시간 복잡도는 Big O 표기법을 사용하여 나타냅니다.Big O, Big Omega, Big Theta시간 복잡도에는 크게 세 가지 종류의 표기법이 있습니다.Big O (O): 알고리즘의 최악의 경우를 나타냅니다. 이는 입력 크기가 커질 때, 알고리즘이 소요할 수 있는 최대 실행 시간을 뜻합니다. 우리는 보통 Big O에 집중하여, 최악의 경우 성능을 평가합니다.Big Omega (Ω): 알고리즘의 최선의 경우를 나타내며, 최소한 이..
올리브한입
'Computer Science/Python' 카테고리의 글 목록