TJ_Log
close
프로필 배경
프로필 로고

TJ_Log

  • 분류 전체보기 (99)
    • Data Engineering (28)
      • Data Engineering? (2)
      • Hadoop (3)
      • Elasticsearch (0)
      • Redis (4)
      • Spark (6)
      • Kafka (4)
      • Airflow (1)
      • DB (2)
      • 자격증 (6)
    • Data Analysis (2)
      • Machine Learning(ML) (1)
      • NLP (1)
    • Infra (9)
    • ETC (19)
      • Network (1)
      • Linux (4)
      • Algorithm (3)
      • Spring (3)
      • Python (2)
      • Scala (2)
      • Java (3)
      • Javascript (1)
    • Project (9)
    • Trouble shooting (2)
    • Experience (1)
    • Programmers TIL (28)
      • Algorithm (8)
  • 홈
  • 태그
  • 방명록

[Algorithm] 이진 트리의 넓이 우선 순회(BFS)_TIL Day3-5

이진 트리의 넓이 우선 순회 넓이 우선 순회(Breadth First Trabersal) 원칙 - 수준(level)이 낮은 노드를 우선으로 방문 - 같은 수준의 노드들 사이에는, 부모 노드의 방문 순서에 따라 방문, 왼쪽을 먼저 방문 한 노드를 방문했을 때, 나중에 방문할 노드(자식노드) 순서를 기록해 둬야 함 (큐를 이용해야 함) 넓이 우선 순회 알고리즘 구현해보기 알고리즘 순서 1. traversal에 빈 리스트, q에 빈 큐를 초기화 2. 빈 트리가 아니면, root node를 큐에 추가 (enqueue) 3. q가 비어 있지 않는 동안 3.1. q에서 원소를 추출 및 node에 저장 (dequeue) 3.2. node를 방문처리 (traversal에 append) 3.3. node의 왼쪽, 오른쪽..

  • format_list_bulleted Programmers TIL/Algorithm
  • · 2023. 4. 12.
  • textsms

[Algorithm] 트리, 이진 트리, 깊이 우선 순회_TIL Day3-4

트리(trees) 트리란? - 정점(node)과 간선(edge)을 이용하여 데이터의 배치 형태를 추상화한 자료 구조 - 최상단은 root node, 최 하단은 leaf node, 중간에는 내부 노드(internal nodes)라고 부름 이진 트리(Bynary Trees) 연산의 정의 size() - 현재 트리에 포함되어 있는 노드의 수를 구함 depth() - 현재 트리의 깊이 (또는 높이; height)를 구함 traversal - 순회 넓이 우선 순회 (breadth first traversal) 깊이 우선 순회 (depth first traversal) - 중위 순회 : left subtree -> 자기 자신 -> right subtree - 전위 순회 : 자기 자신 -> Left subtree -..

  • format_list_bulleted Programmers TIL/Algorithm
  • · 2023. 4. 12.
  • textsms

[Algorithm] 우선순위 큐(Priority Queues)_TIL Day3-3

우선순위 큐(Priority Queues) 특징 - 큐가 FIFO 방식을 따르지 않고 원소들의 우선순위에 따라 큐에서 빠져나오는 방식 - 대표적으로 운영체제의 CPU 스케줄러가 있음 - Enqueue(큐 삽입) 할 때 우선순위 순서를 유지하도록 하는것이 Dequeue보다 유리함 - 연결 리스트를 활용하는것이 더 유리함 (중간에 데이터를 삽입하는일이 빈번함) 양방향 연결 리스트를 이용해 우선순위 큐 구현해보기 class Node: def __init__(self, item): self.data = item self.prev = None self.next = None class DoublyLinkedList: def __init__(self): self.nodeCount = 0 self.head = Node..

  • format_list_bulleted Programmers TIL/Algorithm
  • · 2023. 4. 12.
  • textsms

[Algorithm] 환형 큐(Circular Queue)_TIL Day3-2

환형 큐 - 정해진 개수의 저장 공간을 빙 돌려가며 이용하는 자료구조 - 큐가 가득 차면 더 이상 원소를 넣을 수 없음 (큐 길이를 기억해 활용해야 함) - 저장 공간을 한정하여 공간 낭비를 줄일 수 있음 환형 큐 구현해보기 - 연산의 정의 size() - 현재 큐에 들어 있는 데이터 원소 수 구하기 isEmpty() - 현재 큐가 비어 있는지 판단 isFull() - 큐에 데이터 원소가 꽉 차 있는지를 판단 enqueue(x) - 데이터 원소 x를 큐에 추가 dequeue() - 큐의 맨 앞에 저장된 데이터 원소 제거 (또한, 반환) peek() - 큐 맨 앞의 저장된 데이터 원소 반환 (제거x) class CircularQueue: def __init__(self, n): self.maxCount =..

  • format_list_bulleted Programmers TIL/Algorithm
  • · 2023. 4. 12.
  • textsms

[Algorithm] 큐(Queues)_TIL Day3-1

큐 (Queues) - 선입선출(Firts In First Out) 특징을 가지는 선형 자료구조 (ex.영화관에서 줄서기) 큐의 활용 - 자료를 생성 및 이용하는 작업이 비동기적(asynchronously)으로 일어나는 경우 - 자료를 생성하는 작업이 여러 곳에서 일어나는 경우 - 자료를 처리하여 새로운 자료 생성 후 나중에 해당 자료를 또 처리해야 하는 작업의 경우 양방향 연결 리스트를 이용해 큐 구현해보기 class Node: def __init__(self, item): self.data = item self.prev = None self.next = None class DoublyLinkedList: def __init__(self): self.nodeCount = 0 self.head = Nod..

  • format_list_bulleted Programmers TIL
  • · 2023. 4. 12.
  • textsms

[Algorithm] 연결리스트, 스택, 후위 표기법_TIL Day2

1. 연결 리스트(Linked Lists) 추상적 자료구조(Abstract Data Structures) - 내부구현은 숨겨두고(신경쓸 필요 없음) 밖에서 보이는것들을 제공하는 것 - Data : 정수, 문자열, 레코드, ... - A set of operations : 삽입, 삭제, 순회 or 정렬, 탐색 등의 연산 연결 리스트를 추상적 자료구조로 구현 class LinkedList: def __init__(self): self.nodeCount = 0 self.head = None self.tail = None

  • format_list_bulleted Programmers TIL/Algorithm
  • · 2023. 4. 11.
  • textsms
  • navigate_before
  • 1
  • ···
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • ···
  • 17
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (99)
    • Data Engineering (28)
      • Data Engineering? (2)
      • Hadoop (3)
      • Elasticsearch (0)
      • Redis (4)
      • Spark (6)
      • Kafka (4)
      • Airflow (1)
      • DB (2)
      • 자격증 (6)
    • Data Analysis (2)
      • Machine Learning(ML) (1)
      • NLP (1)
    • Infra (9)
    • ETC (19)
      • Network (1)
      • Linux (4)
      • Algorithm (3)
      • Spring (3)
      • Python (2)
      • Scala (2)
      • Java (3)
      • Javascript (1)
    • Project (9)
    • Trouble shooting (2)
    • Experience (1)
    • Programmers TIL (28)
      • Algorithm (8)
최근 글
인기 글
최근 댓글
태그
  • #spark
  • #docker
  • #data engineering associate
  • #scala
  • #RDB
  • #자격증
  • #db
  • #dea
  • #Kafka
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바