Study/🌱 SeSAC

23.10.31 화

김졀니 2023. 11. 1. 23:41

 

💡 알고리즘

 

✅ 그래프

노드와 간선으로 구성된 자료구조

이를 통해 연결된 노드간의 관계를 표현할 수 있다.

노드(정점)

✔️ 인접행렬

장점: 노드의 연결 상태를 바로 알 수 있음

단점: 노드의 개수가 N이라고 하면 이 배열의 크기는 N*N이 된다.

특정 노드에 연결된 노드를 찾으려면 N번만큼 확인해줘야 한다.

✔️ 인접 리스트

노드별로 연결된 노드를 기록

장점: 실제로 연결된 노드의 정보만 알면 된다.

단점: i와 j 노드의 연결 상태를 바로알 수 없다.

✅ 트리

사이클이 없고 방향이 없는 그래프

특징: 두 점을 연결하는 경로는 유일하다.

  • 루트 노드 - 부모가 없는 최상위 노드
  • 부모 노드 - 루트노드 방향으로 직접 연결된 노드
  • 자식 노드
  • 형제 노드 - 같은 부모를 갖는 노드
  • 리프 노드 - 자식이 없는 노드
  • 레벨 - 루트 노드까지 연결된 간선의 수 (level 0부터 시작함)
  • 높이 - 루트 노드까지 연결된 가장 긴 간선의 수
  • 크기 - 연결된 노드의 개수
  • 차수 - 연결된 자식 노드의 개수
  • 서브트리 - 트리 안의 작은 트리(부분집합)

✔️이진 트리

자식 노드의 수를 최대 2개로 제한하는 가장 간단한 형태

  • 전위 - Root → Left → Right
  • 중위 - Left → Root → Right
  • 후위 - Left → Right → Root

bfs - 큐 / dfs - 스택

 

 

💡RxSwift

✅ Operator

✔️ just

element parameter로 하나의 값을 받아 Observable을 리턴한다.

하나의 값만 emit한다.

Untitled.pngUntitled.png

✔️ of

element parameters가 가변 파라미터로 선언되어 있어 여러가지의 값을 동시에 전달할 수 있다.

2개 이상의 값을 emit할 수 있다.

Untitled.pngUntitled.png

 

✔️ from

배열의 각 요소를 emit하고 싶다면 from을 사용

array parameters로 배열을 받고, 배열의 각 element를 observable로 리턴한다.

개별적으로 반복문 돌아서 이벤트 전달

Untitled.pngUntitled.png

 

✔️ repeatElement

무한 반복하여 아이템을 전달

 

Untitled.pngUntitled.png

 

✔️ repeatElement + take

take: 방출된 아이템 중 처음 n개의 아이템을 내보낸다.

Untitled.pngUntitled.png