[1스4코2파] #147. LeetCode daily 705. Design HashSet

gunny·2023년 5월 30일
0

코딩테스트

목록 보기
148/530

[1스4코2파] 1명의 스위프트 개발자와 4명의 코틀린 개발자, 2명의 파이썬 개발자코딩 테스트 서막 : 1스4코1파

Rule :

하루에 1문제씩 풀기.
한 문제당 30분씩은 고민하기.
왜 그렇게 풀었는지 공유하기.
하루라도 놓친다면 벌금은 1,000원
백준 플래티넘, 프로그래머스 4단계, 개발자 탈퇴 시 모임 탈퇴 가능

START :

[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일차)

Today :

2023.05.30 [147일차]
LeetCode Daily
705 Design HashSet
https://leetcode.com/problems/design-hashset/description/

705. Design HashSet

문제 설명

문제 풀이 방법

옛날에 했던 계산기 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
profile
꿈꾸는 것도 개발처럼 깊게

0개의 댓글