Upload my 2019 Advent of Code attempts
Well, unexpectedly (perhaps naively so), I only made it to Day 7. I created these before I stumbled upon the idea of the mono-repository; otherwise, I like to think I would have more granular commits introducing this work.
This commit is contained in:
		
							parent
							
								
									d480b6f08b
								
							
						
					
					
						commit
						456d358cd7
					
				
					 11 changed files with 773 additions and 0 deletions
				
			
		
							
								
								
									
										35
									
								
								advent-of-code/day_4.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								advent-of-code/day_4.py
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,35 @@
 | 
			
		|||
import re
 | 
			
		||||
 | 
			
		||||
start = 134792
 | 
			
		||||
end = 675810
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def satisfies(x):
 | 
			
		||||
    x = str(x)
 | 
			
		||||
    result = False
 | 
			
		||||
    double, not_decreasing = False, False
 | 
			
		||||
 | 
			
		||||
    # double and *only* double exists
 | 
			
		||||
    for i in range(len(x) - 1):
 | 
			
		||||
        # double and left-of-a  is BOL or !x
 | 
			
		||||
        #        and right-of-b is EOL or !x
 | 
			
		||||
        a, b = x[i], x[i + 1]
 | 
			
		||||
        bol = i - 1 < 0
 | 
			
		||||
        eol = i + 2 >= len(x)
 | 
			
		||||
        if a == b and (bol or x[i - 1] != a) and (eol or x[i + 2] != a):
 | 
			
		||||
            double = True
 | 
			
		||||
            break
 | 
			
		||||
 | 
			
		||||
    # not_decreasing
 | 
			
		||||
    prev = int(x[0])
 | 
			
		||||
    for a in x[1:]:
 | 
			
		||||
        a = int(a)
 | 
			
		||||
        if prev > a:
 | 
			
		||||
            return False
 | 
			
		||||
        prev = a
 | 
			
		||||
    not_decreasing = True
 | 
			
		||||
 | 
			
		||||
    return double and not_decreasing
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
print(len([x for x in range(start, end + 1) if satisfies(x)]))
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue