DEV Community

Discussion on: Advent of Code 2019 Solution Megathread - Day 4: Secure Container

Collapse
 
auerbachstefan profile image
auerbachstefan • Edited

here is my python solution (basically a one-liner):

part1:

input = [int(i) for i in open('input.txt', 'r').read().split('-')]
res = sum([sum([s[i] > s[i + 1] for i in range(len(s) - 1)]) == 0 and len(set([x for x in s]))<=5
    for s in [str(i) for i in range(input[0], input[1] + 1)]])
print(res)

part2:

input = [int(i) for i in open('input.txt', 'r').read().split('-')]
res = sum([sum([s[i] > s[i + 1] for i in range(len(s) - 1)]) == 0 and 2 in [s.count(c) for c in s]
    for s in [str(i) for i in range(input[0], input[1] + 1)]])
print(res)
Collapse
 
auerbachstefan profile image
auerbachstefan

a bit shorter:

i = [int(x) for x in open('input.txt', 'r').read().split('-')]
res = sum( [ s == ''.join(sorted(s)) and len(set(s))<=5
    for s in [str(c) for c in range(i[0], i[1] + 1)]])
print(res)

i = [int(x) for x in open('input.txt', 'r').read().split('-')]
res = sum([s == ''.join(sorted(s)) and 2 in [s.count(c) for c in s]
    for s in [str(c) for c in range(i[0], i[1] + 1)]])
print(res)