AtCoder Beginner Contest 047 in Python A-C
ABC 047 A-Cまで解いてみました
最初からと最後からを解いてみています
これ、後ろに行けば行くほど難しくありませんか???笑
最初の方の問題だったらC問題もスラスラ解けるのに、B問題から結構つまずきました...
以下、解答です
A.
#prepare f = True List = [] #input List = map(int,raw_input().split()) #evaluate List.sort() if not List[0]+List[1] == List[2]: f = False #output if f: print 'Yes' else: print 'No'
B.
#prepare L = [] Q = [] #input W, H, N, = map(int,raw_input().split()) for i in range(N): L.append(map(int,raw_input().split())) x1=0 x2=W y1=0 y2=H #calculate Q = [row[2] for row in L] for k in range(N): if Q[k] == 1: x1 = max(x1,L[k][0]) elif Q[k] == 2: x2 = min(x2,L[k][0]) elif Q[k] == 3: y1 = max(y1,L[k][1]) elif Q[k] == 4: y2 = min(y2,L[k][1]) print max(0,x2-x1) * max(0,y2-y1)
C.
#prepare cnt = 0 #input S = raw_input() #change to list for i in range(len(S)-1): if S[i] != S[i+1]: cnt += 1 print cnt
今回学んだことは、Bのリスト内包表記です
これによって、二次元配列の列が取得出来ました
以下を参考にしました
qiita.com
(でも、AtCoderってnumpy使ってもいいのかも...?)
numpyだったら検索にだいぶ引っかかるのでそれでやったほうがいいかもしれません
C問題は完全にわかりませんでした笑
この解答は参考にさせていただきました、ありがとうございました
だいぶ実装は、早くできるようになってきました
あとは、考えられる頭があれば...笑