HackyHour Würzburg 52
Virtual!
- When: December 17th, 2020 at 5:00pm :warning: it is the 3rd Thursday this month
- Where: :exclamation: Virtual! :exclamation:
- Zoom:
- https://uni-wuerzburg.zoom.us/j/91208057434?pwd=aE9XMng1bzBiRVpMaW5OdTBiZHo0dz09
- Meeting ID: 912 0805 7434
- Password: 827471
- Info: HackyHour Website
- :vertical_traffic_light: As long as the covid numbers are high in Würzburg we can not meet in person :cry: That won’t keep us from having fun, though! :computer:
Topic Suggestions
Add your :+1: to the end of a line you are interested in
- Figure out how to get multiple output formats (.doc, .tex, .Rmd) with (R bookdown package & Co). :+1: :+1: :+1:
- Practice Data Science Skills: TidyTuesday + TidyVerse
- Project Euler
- AdventOfCode or Mathekalender :+1: :+1: https://hackmd.io/QI0mcw2zTgSmb_vPI7XQvA
- Say it challenge (hacker.org) pyAudioAnalysis, LibROSA, silero, wav2vec 2.0
Maybe another time
- 3D Modelling, Blender, VR programming (maybe invite Annika K.)
- GenForce - An efficient PyTorch library for deep generative modeling. May the Generative Force (GenForce) be with You.
- Tidy Time Series Analysis in R: tidyverts
- A challenge platform for data science
Participants
Please add your name and indicate if you prefer to join remotely :computer: and if you want to order pizza :pizza:
- Markus :computer: :pizza:
- Ludmilla
- Frank (partially) :computer: or :desktop_computer:; no :pizza: for me
- Rick :computer: :microscope:
- Franzi (I will join around 5:30 pm)
- Hannah
Advent of Code Coding Dojo
Day 1
Part I
import numpy as np
input = np.loadtxt('input')
for i in range(len(input)):
for j in range((i + 1), len(input)):
s = input[i] + input[j]
if s == 2020:
print(input[i]*input[j])
Part II
import numpy as np
input = np.loadtxt('input')
for i in range(len(input)):
for j in range((i + 1), len(input)):
for k in range((j+1), len(input)):
s = input[i] + input[j] + input[k]
if s == 2020:
print(input[i]*input[j]*input[k])
Day 2
Part I
with open('input') as entry:
lines = entry.readlines()
valid = 0
for l in lines:
parts = l.split()
print(parts)
occurences = parts[0].split('-')
letter = parts[1][0]
print(occurences, letter)
if letter in parts[2]:
c = parts[2].count(letter)
if c >= int(occurences[0]) and c <= int(occurences[1]):
valid += 1
print(valid)
Part II
with open('input') as entry:
lines = entry.readlines()
valid = 0
for l in lines:
parts = l.split()
print(parts)
occurences = parts[0].split('-')
letter = parts[1][0]
print(occurences, letter)
if letter == parts[2][int(occurences[0])-1]:
if letter != parts[2][int(occurences[1])-1]:
valid += 1
if letter == parts[2][int(occurences[1])-1]:
if letter != parts[2][int(occurences[0])-1]:
valid += 1
print(valid)
Day 3
Part I
with open('input') as entry:
lines = entry.readlines()
lines = [l.strip() for l in lines]
x = 0
y = 0
tree = 0
while y < len(lines)-1:
x += 3
x = x%len(lines[0])
y += 1
if lines[y][x] == '#':
tree += 1
print(tree)
- Right 1, down 1.
- Right 3, down 1. (This is the slope you already checked.)
- Right 5, down 1.
- Right 7, down 1.
- Right 1, down 2.
Part II
with open('input') as entry:
lines = entry.readlines()
lines = [l.strip() for l in lines]
treeproduct = 1
xsteps = [1,3,5,7,1]
ysteps = [1,1,1,1,2]
for i in range(5):
x = 0
y = 0
tree = 0
while y < len(lines)-1:
x += xsteps[i]
x = x%len(lines[0])
y += ysteps[i]
if lines[y][x] == '#':
tree += 1
treeproduct *= tree
print(treeproduct)
Day 4
Part I
byr (Birth Year)
iyr (Issue Year)
eyr (Expiration Year)
hgt (Height)
hcl (Hair Color)
ecl (Eye Color)
pid (Passport ID)
cid (Country ID)
with open('input') as entry:
count = 0
line = entry.readline()
line = line.strip()
while line:
pass_dict = {}
while line != '':
pairs = line.split()
for i in range(len(pairs)):
pair = pairs[i].split(':')
pass_dict[pair[0]] = pair[1]
line = entry.readline()
line = line.strip()
if 'byr' in pass_dict:
if 'iyr' in pass_dict:
if 'eyr' in pass_dict:
if 'hgt' in pass_dict:
if 'hcl' in pass_dict:
if 'ecl' in pass_dict:
if 'pid' in pass_dict:
count = count +1
line = entry.readline()
line = line.strip()
print(count)
# print()
# pass_dict = {}
# pass_dict[''] =
Part II
byr (Birth Year) - four digits; at least 1920 and at most 2002.
iyr (Issue Year) - four digits; at least 2010 and at most 2020.
eyr (Expiration Year) - four digits; at least 2020 and at most 2030.
hgt (Height) - a number followed by either cm or in:
If cm, the number must be at least 150 and at most 193.
If in, the number must be at least 59 and at most 76.
hcl (Hair Color) - a # followed by exactly six characters 0-9 or a-f.
ecl (Eye Color) - exactly one of: amb blu brn gry grn hzl oth.
pid (Passport ID) - a nine-digit number, including leading zeroes.
cid (Country ID) - ignored, missing or not.
import re
with open('input') as entry:
count = 0
line = entry.readline()
line = line.strip()
while line:
pass_dict = {}
while line != '':
pairs = line.split()
for i in range(len(pairs)):
pair = pairs[i].split(':')
pass_dict[pair[0]] = pair[1]
line = entry.readline()
line = line.strip()
if 'byr' in pass_dict and int(pass_dict['byr'])>=1920 and int(pass_dict['byr'])<=2002:
if 'iyr' in pass_dict and int(pass_dict['iyr'])>=2010 and int(pass_dict['iyr'])<=2020:
if 'eyr' in pass_dict and int(pass_dict['eyr'])>=2020 and int(pass_dict['eyr'])<=2030:
if 'hgt' in pass_dict:
hgt = pass_dict['hgt']
number = int(hgt[:-2])
unit = hgt[-2:]
if (unit == "cm" and number >= 150 and number <= 193) or (unit == 'in' and 59 <= number <= 76):
if 'hcl' in pass_dict and re.match('^#[0-9a-f]{6}$',pass_dict['hcl']):
if 'ecl' in pass_dict and (pass_dict['ecl'] == 'amb' or pass_dict['ecl'] == 'blu' or pass_dict['ecl'] == 'brn' or pass_dict['ecl'] == 'gry' or pass_dict['ecl'] == 'grn' or pass_dict['ecl'] == 'hzl' or pass_dict['ecl'] == 'oth'):
if 'pid' in pass_dict:
if len(pass_dict['pid']) == 9 and pass_dict['pid'].isnumeric():
count = count +1
line = entry.readline()
line = line.strip()
print(count)
# print()
# pass_dict = {}
# pass_dict[''] =