Advertisement
Musical_Muze

Day 8, Part 1

Dec 13th, 2019
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.25 KB | None | 0 0
  1. import copy
  2.  
  3. #turn the input into an array of ints
  4. inputFile = open("input.txt","r")
  5. rawImage = inputFile.read()
  6. rawImage = list(rawImage)
  7. for i in range(len(rawImage)):
  8.     rawImage[i] = int(rawImage[i])
  9.  
  10. layerSize = int(input("How wide is the image?")) * int(input("How high is the image?"))
  11. numberOfLayers = len(rawImage)/layerSize
  12.  
  13. layers = []
  14. layerN = []
  15.  
  16. #get a two-dimensional array that represents the image at each layer
  17. for i in range(len(rawImage)):
  18.     layerN.append(rawImage[i])
  19.     if((i+1)%layerSize == 0):
  20.         layers.append(copy.copy(layerN))
  21.         layerN.clear()
  22.  
  23. fewestZeros = 150
  24. selectLayer = []
  25.  
  26. #find the layer with the fewest zeros
  27. for x in layers:
  28.     count = 0
  29.     for y in range(len(x)):
  30.         if(x[y]==0):
  31.             count += 1
  32.     if(count<fewestZeros):
  33.         fewestZeros = count
  34.         selectLayer = x
  35.  
  36. print("The layer with the fewest zeros is layer " + str(layers.index(selectLayer)+1) + " with " + str(fewestZeros) + " zeros.")
  37.  
  38. ones = 0
  39. twos = 0
  40.  
  41. for i in selectLayer:
  42.     if(i==1):
  43.         ones += 1
  44.     elif(i==2):
  45.         twos += 1
  46.  
  47. print("Number of ones in the layer: " + str(ones))
  48. print("Number of twos in the layer: " + str(twos))
  49. print("The answer is " + str((ones * twos)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement