Advertisement
Guest User

Reibello Day 4 AOC16

a guest
Dec 3rd, 2016
612
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.75 KB | None | 0 0
  1. #aoc2016_4a.py
  2. input_file_object = open("aoc16_input_4a.txt")
  3. input_as_string = input_file_object.read()
  4. input_file_object.close()
  5.  
  6.  
  7. input_separated = input_as_string.split('\n')
  8.  
  9. input_stripped = []
  10.  
  11. success = []
  12.  
  13. numsum = 0
  14.  
  15. for line in input_separated:
  16.     checksum = line[-6:-1]
  17.     data = line[:-6]
  18.     protoroom = [char for char in data if char.isalpha()]
  19.     protonum = [num for num in data if num in '0123456789']
  20.     idnum = ''.join(protonum)
  21.     room = ''.join((sorted(''.join(protoroom))))
  22.     input_stripped.append((room, checksum, idnum, protoroom))
  23.  
  24. #########################
  25.  
  26. for index in range(len(input_stripped)):
  27.     #print("new pair")
  28.    
  29.     checksum = input_stripped[index][1]
  30.     room = input_stripped[index][0]
  31.     for x in checksum:
  32.         if x not in room:
  33.             #print("invalid - checksum")
  34.             break
  35.     else:
  36.         for y in room:
  37.             if y in checksum:
  38.                 continue
  39.             else:
  40.                 cs = [room.count(checksum[0]),room.count(checksum[1]),room.count(checksum[2]),room.count(checksum[3]),room.count(checksum[4])]
  41.                 if room.count(y) > min(cs):
  42.                     #print("invalid - char count")
  43.                     break
  44.         else:
  45.             success.append(input_stripped[index])
  46.    
  47.  
  48.  
  49. for x in range(len(success)):
  50.     numsum += int(success[x][2])
  51. print(numsum)
  52.  
  53. ##4b
  54.  
  55. deciphered = []
  56.  
  57. for i in range(len(success)):
  58.     room = success[i][-1]
  59.     idnum = success[i][2]
  60.     tempstr = ''
  61.     for r in room:
  62.         tempchar = chr(((((ord(r) - 97) + int(idnum)) % 26) + 97))
  63.         tempstr = tempstr+tempchar
  64.         #print(tempstr)
  65.     deciphered.append(tempstr)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement