하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능
[3코1파] 2023.01.04~ (147일차)
[4코1파] 2023.01.13~ (138일차)
[1스4코1파] 2023.04.12~ (49일차)
[1스4코2파] 2023.05.03 ~ (28일차)
2023.05.30 [147일차]
LeetCode Daily
705 Design HashSet
https://leetcode.com/problems/design-hashset/description/
문제 설명
문제 풀이 방법
옛날에 했던 계산기 class 만드는거 같음
톱밥
내 코드
class MyHashSet:
def __init__(self):
self.hash = set()
def add(self, key: int) -> None:
self.hash.add(key)
def remove(self, key: int) -> None:
self.hash.discard(key)
def contains(self, key: int) -> bool:
if key in self.hash:
return True
return False
증빙
여담
엥.. 개쉽당
톱밥
인 줄 알았으나..
아오.. 쉽다고 set 사용해서 풀었는데
Design a HashSet without using any built-in hash table libraries.
여기서 set 쓰면 안된다고 해서..
set 안쓰고 푼 양씨꺼 풀이 쌤쳐옴
class ListNode:
def __init__(self, key):
self.key = key
self.next = None
class MyHashSet:
def __init__(self):
self.hashSet = [ListNode(0) for i in range(10**4)]
def add(self, key: int) -> None:
cur = self.hashSet[key%len(self.hashSet)]
while cur.next:
if cur.next.key == key:
return
cur = cur.next
cur.next = ListNode(key)
def remove(self, key: int) -> None:
cur = self.hashSet[key%len(self.hashSet)]
while cur.next:
if cur.next.key == key:
cur.next = cur.next.next
return
cur = cur.next
def contains(self, key: int) -> bool:
cur = self.hashSet[key%len(self.hashSet)]
while cur.next:
if cur.next.key == key:
return True
cur = cur.next
return False