728x90

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

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

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

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

게임 리뷰 2018.02.04 0

메이플스토리] 현재 임시 차단된 IP를 통해서 접속하였습니다.

메이플스토리] 현재 임시 차단된 IP를 통해서 접속하였습니다. 어처구니가 없는 일이었다.즐겁게 메이플스토리를 하면서 플레이 일지를네이버 블로그에 포스팅을 하고 있던 내게갑자기 날아온 이 메세지는,기숙사라는 제한적인 환경에서 게임을 즐기는나한테는 사실상 게임 이용 제한 조치나 다름이 없었고,나를 작업장으로 간주했던 시스템에 대한 불만을 갖게 하기에 충분했다. 그냥 한 문장으로 완벽한 해결 방법은 없고 시간이 약이며,게임 이용 환경을 아예 탈출하는 것이 답이다. 각설하고, 이 '현재 임시 차단된 IP를 통해서 접속하였습니다.'라는 문구가 뜨면즉시 접속을 종료하고, 차단된 네트워크 환경에서다시 접속을 시도하지 않는 것이 중요하다.접속을 다시 시도하는 경우 차단 기간이 늘어날 수 있기 때문이다. 이 시스템 자체..

메이플스토리 2017.05.10 1

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

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

게임 리뷰 2017.02.27 0

C, C++] 이중 포인터를 이용해 2차원 배열 사용하기

동적 할당을 사용하면 포인터는 배열처럼 사용할 수 있다.여기까진 포인터를 어렴풋이 아는 입문자들도 포인터의 연산과 배열의 인덱스를 연관지어 어렵지 않게 이해할 수 있는 부분인데, 문제는 이중 포인터를 이용해서 2차원 배열을 선언할 때 발생한다. 일단 본론에 들어가기 앞서, 포인터를 이용해서 배열을 사용하는 방법을 그림과 식으로 이해해보자. Cint* ptr = NULL; ptr = (int*)malloc(sizeof(int)*5); C++ int* ptr = nullptr; ptr = new int[5]; 어렵지 않게 요소 5개 짜리 int형 배열을 동적 할당했다. 포인터를 외우듯 공부한 사람들이어도 아래 그림까지는 어렵지 않게 그려내고 이해할 수 있다. 이제 2차원 배열을 어떻게 동적 할당할 지 생각해..

C,C++ 2018.05.16 2
728x90