DEV Community

Viper
Viper

Posted on • Edited on

Advent of Code 2021 Python Solution: Day 1

Challenge is at this link.
I have made a helper function to read data for all day's problem. Each day's data file will be inside data folder in same directory. The data file will be a text file where contents will be taken from challenge's test example and real input. It will be in the format.

{Test Input} Split From Here {Real Input} 
Enter fullscreen mode Exit fullscreen mode
def get_data(day=1): """ Returns test and real data in list format. Raw data should be maintained as: [test data] Split From Here [actual data] """ file_name = f"data/day{day}.txt" with open(file_name) as fp: data = fp.read().strip().split("Split From Here") data = [d.strip().split("\n") for d in data] return data get_data() 
Enter fullscreen mode Exit fullscreen mode

Part 1

data,data1 = get_data() data = list(map(int, data)) data1 = list(map(int, data1)) pd = None res = [] for d in data: if pd is None: res.append(None) else: if pd>d: res.append("0") else: res.append("1") pd=d print(res.count("1")) 
Enter fullscreen mode Exit fullscreen mode

Answer of test data is 7 and of real input is 1266.

Part 2

w = [] wsum = [] i = 0 ps = None for j in range(3, len(data1)+1): wsum.append(sum(data1[i:j])) i+=1 pd = None res1 = [] for d in wsum: if pd is None: res1.append(None) else: if pd>=d: res1.append("0") else: res1.append("1") pd=d print(res1.count("1") 
Enter fullscreen mode Exit fullscreen mode

All of my codes are available in GitHub as Jupyter Notebook.

Why not read more?

Top comments (0)