본문 바로가기

CS

(14)
HashMap Map은 Key와 Value의 쌍으로 데이터를 저장하는 방식을 말한다.HashMap은 Hash Table을 기반으로 구현한 Map이다. 1. 주요 용어 및 기능Hash Function임의의 데이터를 정수로 변환하는 함수해시 알고리즘을 통해 결과를 반환Bucket(Slot)HashTable의 각각의 공간을 의미Key와 Value, Hash 값이 저장되며, 충돌 해결 방식에 따라 LinkedList와 같이 다음 노드의 주소 포인터가 저장될 수 있다.CapacityHashTable의 크기2. 동작 방식Key와 Value가 주어졌을 때, Key를 Hash Function에 넣어 나온 정수 값을 Capacity로 모듈러 연산을 진행하여 나온 값의 위치로 Key와 Value를 저장한다.3. Hash 충돌간혹 서로 ..
운영체제의 메모리 관리 운영체제의 종류에는 대표적으로 Windows, Linux, MaxOS 가 있습니다.그 외에도 많이 있지만 자주 사용되는 OS는 위와 같습니다.그렇다면 OS는 무엇이고 어떤 일을 하는 녀석일까요? 우선 컴퓨터 시스템은 하드웨어와 소프트웨어로 구성되어 있습니다.소프트웨어는 하드웨어에 의해 실행되는데 하드웨어에는 CPU와 메모리, 다양한 입출력 장치로 구성되어 있습니다.운영체제가 없어도 하드웨어가 동작하긴 하지만 소프트웨어인 프로그램이 운영체제 환경에서 작성되고, 실행되고 있습니다.운영체제의 주 목적은 컴퓨터 시스템의 자원들을 효율적으로 관리하고 사용자에게 서비스를 제공하는 것입니다.운영체제가 관리하는 자원에는 물리적 자원과 추상적인 자원이 있습니다.물리적 자원: CPU, 메모리 등과 같은 하드웨어추상적 자원..
[알고리즘] 완전탐색 DFS & BFS 깊이 우선 탐색 (DFS) DFS는 깊이 우선 탐색이라고 부르며 그래프에서 깊은 부분을 우선적으로 탐색하는 알고리즘이다. 깊이 우선 탐색(DFS)은 스택 자료구조(또는 재귀 함수)를 이용한다. 완전탐색 방법 중 하나로 모든 경우의 수를 확인해야 할 경우 사용한다. 예를 들어 모든 조합을 확인하여 특정 조합의 개수를 구하는 문제를 풀 때 사용할 수 있다. DFS 탐색 방법 1번 노드부터 시작 접근하지 않은 노드가 있다면 번호가 낮은 노드부터 접근하여 PUSH PUSH(1) -> PUSH(2) -> PUSH(7) -> PUSH(6) Stack = [1, 2, 7, 6] 다음 노드가 없을 경우 접근하지 않은 노드가 연결된 노드가 나올 때까지 POP POP(6) Stack = [1, 2, 7] 이 과정을 반복하..
[알고리즘] 이진 탐색 이진탐색이란? 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색하는 방법이다. 쉽게 말해 up&down 게임과 유사하다고 볼 수 있다. 시작점, 중간점, 끝점을 이용하여 탐색 범위를 설정하는데 탐색할 숫자가 중간점보다 크다면, 중간점보다 작은 수들은 배척시킴으로써 탐색 범위를 줄여나간다. 예제 찾고자 하는 수가 14일 때 - 중간점이 2개일 경우 둘 중 아무거나 해도 상관 없다. 1. 찾고자 하는 수와 중간점을 비교한다. 2. 찾고자 하는 수(14)가 중간점보다 작다면 중간점 아래를, 높다면 중간점 위의 숫자들을 제거해준다. 3. 찾고자 하는 수(14)가 중간점보다 크기 때문에 중간점보다 작은 수들을 제외하면 아래와 같이 남게 된다. 과정 반복 중간점이 찾고자 하는 숫자와 같다면 종료한..