DEV Community

Discussion on: Understanding Time Complexity with the First Puzzle of Advent of Code

Collapse
 
annisalli profile image
Anniina Sallinen • Edited

Interesting! I'm not familiar with Golang, but googled and read that you can check the membership with

exists := set["Foo"] 
Enter fullscreen mode Exit fullscreen mode

If you know which number you're looking for (calculating 2020 - x = y), and I read the example above correctly, couldn't you just

exists := set[y] 
Enter fullscreen mode Exit fullscreen mode

Do you need to save the read values to a map, I'm not so sure? 🤔

Thread Thread
 
lauravuo profile image
Laura Vuorenoja

Yes, I mean that I use the map structure instead of set (I think go does not have sets 🤔 ). Let me paste here my pseudolike code:

func findValue: int
  cache := new key-value-storage
  for line = read-next-line from file:
    nbr := convert line to nbr
    want := 2020 - nbr
    if cache[want]:
      return want * nbr
    cache[nbr] = nbr
  return 0
Enter fullscreen mode Exit fullscreen mode

So I mean "saving to a map" this line cache[nbr] = nbr. Of course the value could be anything, only the key counts ☺️

Thread Thread
 
annisalli profile image
Anniina Sallinen • Edited

Ohh yeah now I see 😊