๐Ÿฅž BE
home

706_Design HashMap

๋‹ด๋‹น์ž
์™„๋ฃŒ ์—ฌ๋ถ€
Solved
์š”์•ฝ
๋‚ ์งœ
2024/07/15
ํƒœ๊ทธ
์ž๋ฃŒ๊ตฌ์กฐ
๋‚œ์ด๋„
Easy
์ถœ์ฒ˜
LeetCode

์ฝ”๋“œ

import java.util.LinkedList; class MyHashMap { // ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋กœ ๋…ธ๋“œ ๊ฐ์ฒด ์ƒ์„ฑ private LinkedList<Entry>[] node; // Entry -> ํ‚ค-๊ฐ’ ์Œ์„ ์ €์žฅํ•˜๋Š” ํด๋ž˜์Šค private static class Entry { int key; int value; Entry(int key, int value) { this.key = key; this.value = value; } } public MyHashMap() { node = new LinkedList[1000000]; } public void put(int key, int value) { int index = key % node.length; if (node[index] == null) { node[index] = new LinkedList<>(); } for (Entry entry : node[index]) { if (entry.key == key) { // ํ‚ค๊ฐ€ ์กด์žฌํ•˜๋ฉด ๊ฐ’์„ ์—…๋ฐ์ดํŠธ entry.value = value; return; } } node[index].add(new Entry(key, value)); // ์ƒˆ๋กœ์šด ํ‚ค-๊ฐ’ ์Œ์„ ์ถ”๊ฐ€ } public int get(int key) { int index = key % node.length; LinkedList<Entry> entries = node[index]; if (entries != null) { for (Entry entry : entries) { if (entry.key == key) { return entry.value; } } } return -1; // ํ‚ค์— ๋Œ€ํ•œ ๋งคํ•‘์ด ์—†๋Š” ๊ฒฝ์šฐ } public void remove(int key) { int index = key % node.length; LinkedList<Entry> entries = node[index]; if (entries != null) { entries.removeIf(entry -> entry.key == key); } } }
Java
๋ณต์‚ฌ
put(key, value) : ํ‚ค, ๊ฐ’์„ ํ•ด์‹œ๋งต์— ์‚ฝ์ž…. ๋งŒ์•ฝ ํ‚ค๊ฐ€ ์กด์žฌํ•œ๋‹ค๋ฉด ์—…๋ฐ์ดํŠธ.
get(key) : ํ‚ค ๊ฐ’์„ ์กฐํšŒ. ๋งŒ์•ฝ ํ‚ค๊ฐ€ ์—†์œผ๋ฉด -1์„ ๋ฆฌํ„ด.
remove(key) ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค, ๊ฐ’์„ ํ•ด์‹œ๋งต์—์„œ ์‚ญ์ œ

๋ฌธ์ œ ํ•ด๊ฒฐ ์•„์ด๋””์–ด

๊ฐ„๋‹จํžˆ ํ•ด์‹œ๋งต์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฌธ์ œ๋‹ค.