CodeJam Qualification Round2020 A~C
概要
- Code Jam 2020のQualification RoundのA~C問題をpythonでときましたメモ。
- (A~Cしか解けなかったため)
問題はこちら
codingcompetitions.withgoogle.com
A: Vestigium
def solve(): N = int(input()) grid = [[v for v in map(int, input().split())] for _ in range(N)] trace = sum([grid[i][i] for i in range(N)]) row = 0 col = 0 for i in range(N): if len(set([grid[i][j] for j in range(N)])) != N: row += 1 if len(set([grid[j][i] for j in range(N)])) != N: col += 1 return [trace, row, col] for i in range(int(input())): ret = solve() print("Case #{}: {} {} {}".format(i+1, *ret))
B: Nesting Depth
def solve(): S = input() ret = "" cur_dep = 0 for s in S: if int(s) == cur_dep: ret += s elif int(s) > cur_dep: ret += "("*(int(s)-cur_dep)+s cur_dep = int(s) else: ret += ")"*(cur_dep-int(s))+s cur_dep = int(s) ret += ")"*cur_dep return ret T = int(input()) for i in range(T): ret = solve() print("Case #{}: {}".format(i+1, ret))
C: Parenting Partnering Returns
def solve(): N = int(input()) activities = [list(map(int, input().split())) for _ in range(N)] activities = [[i, a[0], a[1]] for i, a in enumerate(activities)] activities = sorted(activities, key=lambda x: (x[1], x[2])) ret = [] C_end = 0 J_end = 0 for i, s, e in activities: if C_end <= s: ret.append([i, "C"]) C_end = e elif J_end <= s: ret.append([i, "J"]) J_end = e else: ret = "IMPOSSIBLE" return ret ret = sorted(ret) return "".join(map(str, [v[1] for v in ret])) T = int(input()) for i in range(T): ret = solve() print("Case #{}: {}".format(i+1, ret))
思ったこと
- とりあえず42点取れた。
- Qualification Roundは30点取ると次のRound1に進めるっぽいので、とりあえず突破っぽい。
- Round1は3回開かれて、少なくとも1回上位1500人に入れると、Round2にいけるっぽい。
- Round2に行けたら嬉しいな。
最近買ってよかったもの
- wpcの折り畳み傘
- 軽いしとてもコンパクト。
- リュックとかに入れても、70gしか重さがないためリュックがおもくならない
- 50cmの傘だけど、折りたたむととてもコンパクトになるため、リュックに入れてもかさばらない。サコッシュとかにも入るので、便利。
- 50cmあるので、一人は雨から守れる。(二人はいるにはさすがに狭いけど。)
- 何より ミニマルなデザイン が好き。