파이썬 | 링크드 리스트 구현하기 (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 (Ω): 알고리즘의 최선의 경우를 나타내며, 최소한 이..
캐나다 취업 | 회사 세 개 면접 후기! 면접 질문 모음
·
Work/Job Interview
최근 세 개의 회사에서 면접을 보았고, 그 경험을 정리하여 공유하려 합니다. 각 회사의 면접 과정과 질문들이 달랐고, 그만큼 배울 점도 많았어요. 취업 준비 중인 분들에게 도움이 될 수 있도록 면접 질문과 과정에서 느꼈던 점을 함께 나눌게요.1. 첫 번째 회사첫 번째로 면접을 봤던 회사는 글로벌 금융 트레이딩 회사였고, Data Analyst 포지션에 지원했습니다. 면접은 총 세 번의 단계로 진행된다고 안내받았지만, 아쉽게도 저는 첫 번째 단계에서 탈락하게 되었습니다.HR 전화 면접:회사를 알고 있냐는 질문면접이 시작되자마자 회사에 대해 알고 있는지 물어보셨어요. 그 후 면접관이 추가로 회사에 대해 더 자세히 설명해 주셨습니다. 자기 소개그 다음에는 자기소개를 부탁하셨습니다.지역 이동 의향제가 현재 회사..
올리브한입
올리브코드랩