| from collections import Counter | |||||
| app = eps = '' | |||||
| for col in zip(*text.splitlines()): | |||||
| n, *_, m = Counter(col).most_common() | |||||
| app += n[0] | |||||
| eps += m[0] | |||||
| ans1 = int(app, 2) * int(eps, 2) | |||||
| nums = text.splitlines() | |||||
| xs = nums[:] | |||||
| ys = nums[:] | |||||
| for idx in range(len(nums[0])): | |||||
| n, _ = Counter(sorted([x[idx] for x in xs])).most_common()[::-1][0] | |||||
| xs = [x for x in xs if x[idx] == n] | |||||
| m, _ = Counter(sorted([y[idx] for y in ys])).most_common()[::-1][-1] | |||||
| ys = [y for y in ys if y[idx] == m] | |||||
| ans2 = int(xs[0], 2) * int(ys[0], 2) |