250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(Leet Code JS)Snapshot Array 본문
728x90
반응형
https://leetcode.com/problems/snapshot-array/
Map을 이용한 문제 풀이.
생성자가 호출될 때
전체 스냅샷이 저장될 snapshots(Map),
현재 스냅샷을 나타내는 array(Map),
현재 스냅 Id를 나타내는 snapId를 선언한다.
set(index, val) 함수.
현재 스냅샷에 key: index, value: val 로 저장한다.
snap() 함수.
현재 스냅샷을 나타내는 array를 snapshots 맵에 저장한다.
저장할 때는 snapId를 key로, new Map(this.array)를 value로 저장한다.
리턴값은 현재 snapId를 반환하면서 후위 증가 연산자로 + 1을 해준다.
get(index, snap_id) 함수.
snap_id를 가지는 스냅샷에서 index에 해당하는 값을 리턴하면 된다.
그러기 위해서는 this.snapshots에서 snap_id가 있는지 확인을 해야 한다.
만약 없다면 0을 리턴.
존재한다면 해당 map에서 index를 key로 가지는 value를 리턴하면 된다.
class SnapshotArray{
constructor(length){
this.snapshots = new Map();
this.array = new Map();
this.snapId = 0;
};
set(index, val) {
this.array.set(index, val);
};
snap() {
this.snapshots.set(this.snapId, new Map(this.array));
return this.snapId++;
};
get(index, snap_id) {
if(this.snapshots.get(snap_id).has(index)){
return this.snapshots.get(snap_id).get(index);
}
return 0;
};
}
728x90
반응형
'Leet Code 알고리즘' 카테고리의 다른 글
(Leet Code JS)Network Delay Time (0) | 2022.01.20 |
---|---|
(Leet Code JS)Find Original Array From Doubled Array (0) | 2022.01.12 |
(Leet Code JS)Minesweeper (0) | 2021.12.21 |
(Leet Code JS)Reorganize String (0) | 2021.11.27 |
(Leet Code JS)K Closest Points to Origin (0) | 2021.11.27 |