티스토리 뷰
leetcode.com/problems/design-hashset/
Hash table관련 라이브러리 사용없이 Hash Set 형태의 클래스를 만들라고 한다.
class MyHashSet {
public:
list<int> set;
MyHashSet() {}
void add(int key) {
set.push_back(key);
}
void remove(int key) {
set.remove(key);
}
bool contains(int key) {
for (list<int>::iterator it = set.begin(); it != set.end(); it++) {
if (*it == key) return true;
}
return false;
}
};
간단하게 list사용해서 만듬
원래 key값이 충돌되면 안되지만 충돌이 나면 어떻게 하라는게 없어서 걍 따로 추가는 안한 코드이다.
만약 충돌에 대한 처리를 한다면 아래의 코드가 되겠다.
class MyHashSet {
public:
list<int> set;
MyHashSet() {}
void add(int key) {
if (contains(key) == false) set.push_back(key);
else throw "existed key";
}
//remove key
void remove(int key) {
set.remove(key);
}
bool contains(int key) {
for (list<int>::iterator it = set.begin(); it != set.end(); it++) {
if (*it == key) return true;
}
return false;
}
~MyHashSet() {
set.clear();
}
};
add할때 이미 key가 존재한다면 강제로 오류내버린다.
'알고리즘 문제 풀이' 카테고리의 다른 글
[알고리즘문제] 프로그래머스 위장 (0) | 2021.04.08 |
---|---|
[알고리즘문제] 릿코드 Design HashMap (0) | 2021.04.08 |
[알고리즘문제] 릿코드 Find Common Characters (0) | 2021.04.07 |
[알고리즘문제] 릿코드 Subdomain Visit Count (0) | 2021.04.06 |
[알고리즘문제] 릿코드 Employee Importance 문제풀이실패 (0) | 2021.04.05 |