본문 바로가기

TIL

TIL 081623

Q: 배열, 링크드리스트를 비교하여 설명해주실 수 있을까요?

A: 

 

배열과 연결 리스트 비교

장점

  • 배열 : 인덱스를 통한 빠른 접근 가능
  • 연결 리스트 : 삽입/삭제 용이

단점

  • 배열 :
    • 삽입/삭제가 오래 걸림
    • 배열 중간에 있는 데이터가 삭제되면, 공간 낭비가 발생함
  • 연결 리스트 : 임의 접근이 불가능하여, 처음부터 탐색을 진행해야 함

용도

  • 배열 : 빠른 접근이 요구되고, 데이터의 삽입과 삭제가 적을 때
  • 연결 리스트 : 삽입과 삭제 연산이 잦고, 검색 빈도가 적을 때

 

배열(Array) 연결 리스트(Linked List)
정적 자료구조 동적 자료구조
미리 크기를 정해 놓음 크기를 정할 필요가 없음
연속된 메모리 주소를 할당 받음 연속된 메모리 주소를 할당 받지 않음
접근, 탐색 용이 추가, 삭제 용이
index 존재 Node 존재

 

https://kimmeh1.tistory.com/473

 

[자료구조] Array와 Linked List의 차이는 무엇일까?

Array와 Linked List가 무엇인지 안다면 그 차이는 쉽게 알 수 있을 것이다. Array 배열은 특정 크기만큼 연속된 메모리 공간에 데이터를 저장하는 자료구조이다. 만약 int형 데이터 3개를 저장할 수 있

kimmeh1.tistory.com

https://velog.io/@xxhaileypark/%EC%9E%90%EB%A3%8C-%EA%B5%AC%EC%A1%B0-%EB%B0%B0%EC%97%B4-%EC%97%B0%EA%B2%B0-%EB%A6%AC%EC%8A%A4%ED%8A%B8-Array-LinkedList

 

[자료 구조] 배열 & 연결 리스트 (Array & LinkedList)

배열은 입력된 데이터들이 메모리 공간에서 연속적으로 저장되어 있는 자료구조이다.메모리 상에서 연속적으로 저장되어 있는 특징을 갖기 째문에, index를 통한 접근이 용이하다.배열의 크기는

velog.io

https://blacklobster.tistory.com/8

 

간략 설명! 배열(Array)과 연결 리스트(Linked List)에 대해서 알아보자! - 차이점과 시간복잡도, 활용

예전에 프론트엔드 개발자 기술 면접 준비를 하면서 공부했던 배열(Array)과 연결 리스트(링크드 리스트, Linked List)에 대해서 간략하게 글을 써보려고 합니다. 자료구조 공부하면서 배열과 연결

blacklobster.tistory.com

 

 

 

Q: 우선순위 큐의 시간복잡도는 어떻게 되며 그 이유는 무엇인지 설명해주실 수 있을까요?

A: 


배열로 저장한 데이터에서 우선순위가 가장 높은 데이터를 찾는 것은 시간복잡도는 O(N)입니다.

데이터가 정렬되어 있다면 이진 탐색(Binary Search)을 통해 O(logN)도 가능합니다.

 

https://laboputer.github.io/ps/2017/10/06/priorityqueue/

 

[자료구조 2] 우선순위 큐(Priority Queue) 이해하기

최댓값 또는 최솟값처럼 우선순위가 높은 데이터를 검색하는 연산만을 빠르게 하기 위해 고안된 자료구조로 우선순위 큐(Priority Queue)를 사용할 수 있습니다. 이 포스팅에서는 우선순위 큐가 무

laboputer.github.io

 

Priority Queue에서 특정 원소를 찾기 위해서는 전체 노드를 우선순위에 따라 반복적으로 확인해야 한다. 이 때문에, O(N)의 시간 복잡도를 가진다.

 

https://kotlinworld.com/442

 

[Kotlin] PriorityQueue란 무엇인가? Priority Queue의 삽입, 삭제, 탐색을 위한 시간 복잡도 알아보기

PriorityQueue란? PriorityQueue는 원소들을 우선순위에 따라 저장하고 관리하는 자료구조이다. 각각의 원소는 우선순위의 순서대로 저장된다. PriorityQueue는 일반적으로 min-heap 이나 max-heap을 사용해 구

kotlinworld.com

  • 우선순위 큐의 삽입과 삭제는 𝑂(𝑙𝑜𝑔𝑁)의 시간 복잡도를 가집니다
  • 따라서 우선순위 큐를 이용한 정렬은 𝑂(𝑁𝑙𝑜𝑔𝑁)의 시간 복잡도를 가진다

https://velog.io/@april_5/%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0-%EC%9A%B0%EC%84%A0%EC%88%9C%EC%9C%84-%ED%81%90Priority-Queue

 

🌈 자료구조:: 우선순위 큐(Priority Queue)

우선순위 큐(Queue)의 필요성과 개념에 대해 이해하기

velog.io

 

  • range()

https://www.codingfactory.net/11747

 

Python / range() / 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수

range() range() 함수는 연속된 수 또는 일정 간격의 연속된 수를 만드는 함수입니다. for 반복문에 자주 사용됩니다. 문법 range(stop) 0부터 시작하여 stop보다 하나 작은 수까지 만듭니다. range(start, stop)

www.codingfactory.net

https://dojang.io/mod/page/view.php?id=1271 

 

COS Pro 2급 파이썬: 15.4 숫자를 감소시키기

for와 range를 사용하면 숫자가 증가하면서 반복합니다. 그럼 숫자를 감소시킬 수는 없을까요? >>> for i in range(10, 0):    # range(10, 0)은 동작하지 않음 ...     print('Hello, world!', i) ... range(10, 0)과 같

dojang.io

 

 

  • 각 자릿수 분리해서 더하기

https://go-hard.tistory.com/96

 

[python] 파이썬 각 자리수 분리, 더하기

파이썬에서 각 자리숫자를 분리하는 방법은 여러가지가 있으며, 소개해드릴 방법은 문자열로 변환 후 분리하는 방법, 10으로 나누어서 수행하는 방법, map함수를 이용하여 자리수 별 더하는 방법

go-hard.tistory.com

 

'TIL' 카테고리의 다른 글

TIL 081823  (0) 2023.08.18
TIL 081723  (0) 2023.08.17
TIL 081423  (0) 2023.08.14
TIL 081123  (0) 2023.08.11
TIL 081023  (0) 2023.08.10