import yaml
from functools import reduce
INP = "leetcode.yaml"
OUT = "leetcode.md"
tag2q = {}
with open(INP) as f:
inp = yaml.load(f)
for id, info in inp.items():
info = reduce(lambda x, y: {**x, **y}, info, {})
q = f'- [{id}. {info["title"]}](info["url"]) (Difficulty: {info["difficulty"]})'
for tag in info["tags"]:
if not tag2q.get(tag):
tag2q[tag] = []
tag2q[tag].append(q)
buffer = ""
for tag, questions in tag2q.items():
buffer += f"## {tag}\n\n"
for q in questions:
buffer += f"{q}\n"
buffer += '\n\n'
with open(OUT, "w") as f:
f.write(buffer)