본문 바로가기

Today I Learned/Algorithm2

[알고리즘] 파이썬으로 LinkedList 구현하기 LinkedList란 Array와 유사한 배열의 형태를 띄고 있지만, 각각의 요소가 다음 요소를 가리키는 형태로 배열이 이루어진다.# [3]->[5]->[1]->[2]->[9] 따라서 특정 인덱스의 값을 읽기에는 부적절하지만, 특정 인덱스에 값을 추가하거나, 삭제하는 등의 동작에는 효율적인 형태를 가진다.이러한 LinkedList를 파이썬에서 사용해보기 위해서 직접 구현을 해보았다. 우선, 각각의 요소를 클래스 Node로 구현한다. 각각의 요소는 자신의 값을 가짐과 동시에 다음 요소에 대한 정보도 가지고 있어야 한다.class Node: def __init__(self, value): data = value next = None 앞서 만든 Node class를 활용해 기본적인 LinkedL.. 2025. 3. 13.
[알고리즘] 시간복잡도와 공간복잡도 1. 시간복잡도시간복잡도란 입력값에 비해 얼마나 일을 수행해야 하는지에 대한 지표이다. 입력값 N에 따라서 연산량이 증가한다. 예를 들어, 상자 안의 물건 중 빨간색이 들어있는 물건만 꺼낸다고 했을 경우A 방식은 N번 만큼의 연산이 필요하고, B 방식은 N^2만큼의 연산이 필요하다고 한다면,N이 20이라면 A방식은 20번, B방식은 400번의 연산이 필요하다. 이처럼 시간복잡도는 입력값과 문제를 해결하는 데에 소요되는 시간과의 상관관계를 말한다.2. 공간복잡도공간복잡도는 입력값과 문제를 해결하는 데에 소요되는 공간과의 상관관계를 말한다 예를 들어, 어떤 문제를 해결하는 데에 변수 A를 선언하여 사용한다고 했을 때, 1만큼의 공간이 사용되었다고 할 수 있다. 배열의 경우에는 배열의 길이에 따라 사용되는 공.. 2025. 3. 10.