no image
해쉬 함수는 O(1)이 맞을까
해쉬 테이블, 해쉬 자체에 대한 기본적인 설명은 다른 분들의 여러 좋은 포스팅에서도 충분히 다루고 있으니 생략한다. 그리고 언어를 파이썬으로 찾아보게 된건, c++의 stl보다 파이썬의 hash의 코드가 더 읽기 쉬웠기도 하고, 요즘 내가 많이 쓰고 있는 언어가 python이라 이를 기준으로 찾아보게 되었다. 파이썬에서 내부구현된 해시 함수를 찾아보자. 우선 파이썬 공식문서의 Object protocol에서 PyObject_Hash(PyObject *o) 함수에 대한 설명을 찾을 수 있다. Py_hash_t PyObject_Hash(PyObject *o) Stable ABI의 일부이며, 객체 o의 해시값을 계산하여 반환한다. 실패하면 -1을 반환한다. 이는 python의 표현식 hash(o)와 동일하다...
2023.06.19
no image
[자료구조 / 스택] 배열로 구현한 스택
자료구조를 공부하기 위한 5가지 단계 프로그래밍 언어를 어느정도 배우고 나면 그 다음엔 보통 자료구조를 공부하게 된다. 어떤 공부를 하든 마찬가지겠지만 자료구조를 공부하면서도 어디서부터 어떻게, 얼마나 공부해야 자료구�� imasoftwareengineer.tistory.com 이 분의 블로그를 참고하여, 자료구조 공부 루틴을 따라 가기로 했습니다. 자료구조 공부를 할 때는 다음 5단계를 거칩니다. 1단계 : 자료구조의 목적과 이론 이해 2단계 : 자료구조의 구현 로직 따라가기 3단계 : 자료구조의 형태와 오퍼레이션 직접 구현하기 4단계 : 라이브러리를 이용해 자료구조 사용하기 5단계 : 자료구조를 적용하여 문제 해결하기 1. 스택의 목적과 이론 이해 1.1 이 자료구조는 어떻게 생겼나? - LIFO -..
2020.09.14