본문 바로가기

CS10

[자료구조] Hash Table 목차 - Intro - Array vs Hash Table - 어떻게 O(1)을 만들었을까? - Hash function과 Collision - Collision을 최소화해 보자 - JavaScript의 Hash Table - 마치면서Intro코드를 더 빠르게 만들어주는 Hash Table에 대해 배워보자! Hash Table이란 단어를 처음 들어봤어도 개발하다가 이미 써봤을 확률이 매우 높다. Hash Table은 key-value 쌍으로 데이터를 저장하는 자료구조이다. 이 자료구조는 생각보다 똑똑한 방법으로 효율성을 높이는데, 어떤 식으로 구현되어 있는지 뜯어보자. Array vs Hash Table배열은 index를 통해 데이터를 순차적으로 저장한다. 특정 index의 값을 읽거나 추가할 때는 O(.. 2024. 5. 9.
Stack 2개로 Queue, Queue 2개로 Stack 만들기 Stack 2개로 Queue를, Queue 2개로 Stack을 만드는 방법과, 그 시간복잡도에 대해 알아보겠다.  1. Stack 2개로 Queue 만들기 아이데이션inStack과 outStack이 있다. inStack의 입구가 Qin이 되고, outStack의 출구가 Qout이 된다. enqueue 호출 시 1, 2, 3번 공이 순서대로 Stack1에 입력된다. 위에서부터 [3, 2, 1] dequeue 호출 시 outStack이 비어있으면, inStack의 모든 항목을 outStack으로 이동. inStack에서 하나씩 pop해서 outStack에 push한다. 완료되면 outStack은 위에서부터 [1, 2, 3]이 되고, dequeue 호출 시 가장 위에 있는 1부터 제거된다. (그 후의 dequ.. 2024. 5. 7.
[Network] 물리 계층(L1)과 데이터 링크 계층(L2) 목차1. 이더넷2. NIC와 케이블3. 허브4. 스위치 이번 글에서는 물리 계층(L1)과 데이터 링크 계층(L2)에 쓰이는 장비들에 대해 알아본다. 우선, 두 계층을 구분하는 기준은 주소 개념의 유무이다. 물리 계층은 주소 개념이 없다. 물리 계층에서는 호스트와 통신 매체 간의 연결과 통신 매체상의 송수신만 이루어지기 때문에 물리 계층의 네트워크 장비는 송수신되는 정보를 조작하거나 판단하지 않는다. 반면 데이터 링크 계층에는 주소 개념(ex. MAC 주소)이 있다. 데이터 링크 계층NIC, 스위치물리 계층케이블, 허브 1. 이더넷두 대의 컴퓨터가 서로 정보를 주고받으려면 케이블과 같은 매체로 연결되어 있어야 한다. 이때 이 통신 매체의 규격들과 송수신되는 프레임의 형태, 프레임을 주고받는 방법 등이 정의.. 2024. 5. 6.
[Network] 네트워크 시작하기! 목차1. 네트워크 거시적 관점   - 네트워크의 기본 구조   - 네트워크의 분류2. 네트워크 미시적 관점   - 프로토콜   - 네트워크 참조 모델   - 캡슐화와 역캡슐화3. 트래픽과 네트워크 성능 지표 1. 네트워크 거시적 관점에서 보기 ① 네트워크의 기본 구조네트워크는 그래프 형태, 즉 노드가 간선으로 연결된 구조로 호스트, 네트워크 장비, 통신 매체로 구성된다.  호스트가장자리 노드, 즉 네트워크 정보를 최초로 송신하거나 최종으로 수신하는 노드를 호스트라고 한다. 우리가 친구에게 메시지를 보낼 때, 내 스마트폰도 호스트, 그 메시지를 받은 친구의 스마트폰도 호스트이다. 네트워크를 통해서 정보를 보내고, 전달받은 정보를 최종적으로 수신했기 때문이다. 요즘에는 스마트폰, 노트북, 데스크탑, 서버 컴.. 2024. 5. 4.