본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 706. Design HashMap

반응형

https://leetcode.com/problems/design-hashmap/description/

 

Design HashMap - LeetCode

Can you solve this real interview question? Design HashMap - Design a HashMap without using any built-in hash table libraries. Implement the MyHashMap class: * MyHashMap() initializes the object with an empty map. * void put(int key, int value) inserts a (

leetcode.com

map을 사용하는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

class내 map을 선언 후 생성자에서 원소를 clear해줍니다.

📔 풀이과정

1. put의 경우

insert함수로 data를 넣을 수도 있지만 C++에서는 특별히 배열에 접근해 값을 넣듯이 map에 원소를 넣을 수 있는 syntax가 있습니다. 이를 활용해 받은 인지 key, value를 저장해줍니다.

2. get의 경우 key를 count했을 때 존재하면 해당 key를, 아니라면 -1을 반환하면 됩니다.

3. remove의 경우 erase함수를 써 map의 특정 key를 삭제할 수 있습니다.


📕 Code

📔 C++

class MyHashMap {
public:
    map <int, int> m;
    MyHashMap() {
        m.clear();
    }
    
    void put(int key, int value) {
        m[key] = value;
    }
    
    int get(int key) {
        if(m.count(key)) return m[key];
        return -1;
    }
    
    void remove(int key) {
        if(m.count(key)) m.erase(key);
    }
};

/**
 * Your MyHashMap object will be instantiated and called as such:
 * MyHashMap* obj = new MyHashMap();
 * obj->put(key,value);
 * int param_2 = obj->get(key);
 * obj->remove(key);
 */

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.