| @@ -0,0 +1,19 @@ | |||
| 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) | |||