※ 이 자료는 공부를 목적으로 출처에 기입한 여러 자료를 단순히 정리한 것입니다.
※ 출처에 기입한 채널의 코드를 복습하기 위해 재구현하였습니다.
import collections
class hashMap:
def __init__(self):
self.size = 1000
self.table = collections.defaultdict(ListNode)
def put(self, key: int, value: int) -> None:
index = key % self.size
if self.table[index].value is None:
self.table[index] = ListNode(key, value)
return
p = self.table[index]
while p:
if p.key == key:
p.value = value
return
if p.next is None:
break
p = p.next
p.next = ListNode(key, value)
def get(self, key: int) -> int:
index = key % self.size
if self.table[index].value is None:
return -1
p = self.table[index]
while p:
if p.key == key:
return p.value
p = p.next
return -1
def remove(self, key: int) -> None:
index = key % self.size
if self.table[index].value is None:
return
p = self.table[index]
if p.key == key:
self.table[index] = ListNode() if p.next is None else p.next
return
prev = p
while p:
if p.key == key:
prev.next = p.next
return
prev, p = p, p.next
class ListNode:
def __init__(self, key=None, value=None):
self.key = key
self.value = value
self.next = None
if __name__=='__main__':
myHash = hashMap()
myHash.put(1234, 9010291409013)
myHash.put(2234, 132)
print(myHash.get(1234))
'computer > algorithm' 카테고리의 다른 글
백준1260 - DFS와 BFS (0) | 2021.11.28 |
---|---|
P NP 문제 (0) | 2021.08.16 |
해시테이블 구현 - 자바 (0) | 2020.08.10 |
해시테이블 개념 (0) | 2020.08.07 |
Python 리스트의 편리함 (0) | 2020.02.13 |