ami-ryu/DailyAlgorithm

Logger Rate Limiter

Closed this issue · 0 comments

Logger Rate Limiter | Problem

Map

  • Time Complexity: O(1)
  • Space Complexity: O(N) = HashMap
var Logger = function() {
  this.hashMap = new Map();
};

Logger.prototype.shouldPrintMessage = function(timestamp, message) {
  const prevTime = this.hashMap.get(message);
  if (typeof prevTime === "undefined") {
    this.hashMap.set(message, timestamp);
    return true;
  }
  
  if (prevTime + 10 <= timestamp) {
    this.hashMap.set(message, timestamp);
    return true;
  }
  
  return false;
};

조금 더 간결하게 만든 코드

class Logger {
  constructor() {
    this.map = new Map();
  }
  
  shouldPrintMessage(timestamp, message) {
    const prevTime = this.map.get(message);
    
    if (typeof prevTime !== "undefined" && timestamp < prevTime + 10) return false;
    
    this.map.set(message, timestamp);
    return true;
  }
}