파이썬 | 링크드 리스트(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' 카테고리의 글 목록 (12 Page)