728x90

해시테이블(Hash Table)과 체이닝(Chaining)에 대한 간략한 정리

해싱과, 해시테이블 그리고 충돌을 처리하는 체이닝 기법에 대해서 한 번 정리해보자.이 글을 시작하기에 앞서, 스택오버플로우의 많은 자료들 그리고 위키피디아, 각종 유튜브 강의를 참고했다는 사실을 먼저 알립니다. 해시와 해시함수 해시 함수(Hash Function)는 데이터의 효율적인 관리를 위해 길이가 각기 다른 데이터를 고정 길이로 매핑하는 함수다. 이 때 매핑하는 과정을 해싱(Hashing)이라고 하며, 매핑하기 전의 데이터를 키(Key), 매핑 후의 데이터를 해시 값(Hash Value; 때로는 Value)이라 한다. 해시의 목적 해시 테이블(Hash Table)해시 테이블은 데이터의 해시 값을 테이블 내 주소로 이용해먹는 탐색 알고리즘으로, 잘 구현하면 이진 탐색보다 빠르게 처리할 수 있다. 암호..

부동산, 채권, 주식으로 대재벌이 되자, 캐피탈리즘 리뷰

경영 게임을 좋아하는 사람들이라면 모바일 게임에서도 경영 시뮬레이션 게임을 한 번쯤은 찾게 된다. 필자 역시 그런 부류 중 하나였고, 그런 측면에서 많은 경영 시뮬레이션 게임을 플레이했는데 이름 자체부터 이런 필자를 매료한 모바일 게임, 캐피탈리즘에 대해서 리뷰를 해보려고 한다. 종류 : 경영 & 시뮬레이션개발 : SyGame유통 : SyGame플랫폼 : 구글 처음 보자마자 느낀 건, '이 게임 결국 주식으로 돈을 벌어야 겠구나.'였다. 게임의 전부라고 봐야할 정도로 주식이 차지하는 비중이 큰데, 그에 반해 주식의 매도량을 게임 시간 기준 한 달을 바탕으로 수량을 제한한 부분은 아쉬운 부분이다. 아무래도 과금 요소를 넣어야 하다 보니까, 넣은 부분이 아닌가 싶은데, 그게 큰 효과를 보는 것 같지도 않다...

게임 리뷰 2018.02.04 0

공학도들을 위한 게임, Factorio(팩토리오)

공학도들을 위한 게임, Factorio(팩토리오) 외계 생물들이 있는 행성에 내던져진 채로,거기에 있는 자원으로 우주선을 만들어 쏘아올리는 게임팩토리오에 대해서 소개하고자 한다. 스팀에서 24000원에 판매되고 있는 얼리 억세스(Early Access) 게임이다.이전에 리뷰했던 프로젝트 좀보이드처럼 얼리 억세스지만 지속적인 패치가 이루어지고 있으며,순정 모드에 지루해지더라도 고 퀄리티의 모드들이 존재해 지루함을 만회할 수가 있다.그리고 하나 더, 이 게임은 한글을 공식적으로 지원하는 게임이다! 게임 트레일러만 보면 우리도 인텔, 삼성전자가 될 수 있을 것처럼 보이지만,막상 게임을 직접 플레이해보면 그게 쉬운 일이 아니라는 걸 깨닫게 된다.아무것도 모르는 유저들의 손에 곡괭이 하나랑 철판 10개를 던져주고..

게임 리뷰 2017.02.27 0

Algorithm] Closest Pair(최근접 점의 쌍 찾기)

Algorithm] Closest Pair(최근접 점의 쌍 찾기) Closest Pair(말 그대로 최근접 점의 쌍 찾기)XY 좌표 평면 상에 존재하는 점들 중, 가장 근접한 쌍을 골라내는 알고리즘이다.가장 간단한 건, 한 점과 연결되는 모든 점들과의 거리를 계산하고이를 바탕으로 최근접 거리를 탐색하는 것이다. 이 경우 N개의 점이 있다고 했을 때 N(N-1)/2의 비교,Big O로는 N^2에 해당하는 시간복잡도가 소요된다.점의 수가 100개 내외여도 꽤나 느려지는 것이 어마어마한 단점이다. 이 때 우리가 생각해볼 수 있는 것이 분할정복 방식(Divide and Conquer)인데,부분 문제를 만들어서 계산과 비교 회수를 비약적으로 줄일 수 있다.x축을 기준으로 정렬을 수행하고(이 때 정렬은 퀵정렬로 가..

[MySQL/Mac] root 비밀번호 초기화하기

개인 컴퓨터에서 개발을 하다보면 DB를 로컬 환경에 설치하게 되는데, 그때마다 root 비밀번호가 나를 곤란하게 한다. 비밀번호를 설정 안하고 싶지만, 그래도 형식상으로 설정을 하다보면 늘 비밀번호를 까먹게 된다. root 비밀번호를 초기화하는 방법에 대해 알아보자. MySQL 8 Mac에서 homebrew로 설치 위 환경을 전제로 썼지만, Mac OS + MySQL이라면 명령어는 거의 비슷할 것이다. (MySQL 버전에 따라 다를 순 있다.) 1. 서버 종료 후, mysqld_safe로 인증 없이 실행하도록 서버 실행 아래 명령어가 제대로 동작하지 않거나, 명령어가 없다고 뜨는 경우 환경변수를 체크해보도록 하자. mysql.server stop mysqld_safe --skip-grant-tables ..

DB 2024.02.12 30
728x90