세상을 더 편리하게
article thumbnail
[CS] 해시테이블 HashTable
Programming/CS 2023. 4. 22. 16:21

HashTable이란?? (Key, Value)로 데이터를 저장하는 자료 구조 Key를 hash function에 넣으면 고유의 값이 나오게 된다. 이 고유의 값을 index로 활용해서 검색 저장하는 테이블을 HashTable이라 합니다. 이상적인 조건하에 HashTable의 장점은 검색, 삭제, 삽입 모두 O(1)이라는 점이다. (이상적인 조건은 아래에 적겠습니다.) 하지만 단점도 존재한다. - 일반적인 배열에 비해서 저장공간이 많이 필요한다. - Hash 충돌에 대한 별도의 자료구조가 필요하다. - 순차적인 값들을 정렬 혹은 값들이 필요할 때는 배열에 비해 비효율적이다. Hash 충돌 Hash 충돌이 일어나지 않는 것이 HashTable에서 가장 이상적인 상황이다. 그럼 Hash 충돌에 대해서 알아보..

article thumbnail
[CS] 정렬 sort
Programming/CS 2023. 4. 21. 21:32

O(n^2) 버블 정렬 0번가 1번 / 1번과 2번 / 3번과 4번 계속 비교하며 가장 큰 수를 우측으로 이동시킨다. 다시 0번 부터 n - 1 까지 2번째로 큰 수를 우측으로 이동시킨다. 왜 버블인가? - 원소들이 거품처럼 올라오는 것처럼 보여서 버블 정렬 선택 정렬 전체를 훑어서 가장 작은 수를 처음에 넣는다. 다시 전체를 훑어서 그 다음으로 작은 수를 그 다음에 넣는다. 마지막까지 수행해서 모든 수를 정렬한다. 왜 선택 정렬인가? - 위치를 선택해서 어울리는 수를 찾는 거라서 선택 정렬 삽입 정렬 정렬된 배열을 점차 늘려가는 방향으로 배열한다. 0 ~ k 번째까지 정렬된 배열이고 k + 1 번째 수를 정렬해야한다면 0 ~ k 사이에서 k + 1 번째 수의 위치를 찾아 삽입한다. 왜 삽입 정렬인가? ..

컴파일 런타임 빌드의 차이
Programming 2023. 1. 12. 13:57

런타임 도중에 실행되며.... 컴파일될 때에 실행된다... 빌드시 실행되며... 뭐라카노.. 셋이 비슷한거 아닝교? 난 셋이 비슷한 줄 알았다. 하지만 프로그래머라면 구분해야겠다는 생각을 아주아주 오래전에 했지... 아니 했어야만했다. 이제라도 알아보자 우선 각자 알아보자 컴파일 Compile 컴퓨터가 소스 코드를 읽기 위해 코드를 기계어로 번역하는 과정 파일이 여러개라면 여러개의 Object 파일로 만든다. 오케이 우선 기계어로 바꾼다 Okay 그럼 컴파일에서 일어날 수 있는 에러는?? -> 기계어로 바꾸지 못하는 경우겠군! 타입체크 오류 신텍스(문법) 오류 등이 있을 수 있겠다. 링킹 Linking & 런타임 Runtime 링킹은 컴파일을 통해 만들어진 Object 파일들과 런타임 환경에서 제공하는 ..

article thumbnail
[git/github] 레파지토리 도메인 연결하기
Programming/Github & git 2022. 6. 7. 21:10

0. 도입 보통 깃허브에서 레파지토리를 파면 다음과 같은 URL를 다르게 된다. https://github.com/자신의 닉네임 or Organization 이름/레파지토리이름 하지만 종종 레파지토리에 직접적인 URL를 붙여야 할 때가 오기도 한다. 예를 들어 https://www.example.com 위 example.com 처럼 도메인을 사용해야 할 때에는 개인 도메인을 갖고 있거나 없다면 구매를 해야한다. 1. 도메인 구입하기 먼저 도메인이 없다면 도메인을 사야한다. 다양한 곳에서 도메인 구입이 가능하지만 가비아도메인을 사용하고자 한다. 가비아: 대한민국 도메인 점유율 1위 대한민국 100만 도메인 등록 업체 domain.gabia.com 가비아 도메인을 구입은 정말 쉽다. 위 홈페이지에서 원하는 ..