AtCoder Beginner Contest 152 過去問 (A~C)
参照
A問題
難なく突破
n,m = map(int, input().split()) print('Yes') if n==m else print('No')
B問題
こちらも難なく突破
a,b = input().split() print(sorted([a*int(b),b*int(a)])[0])
C問題
配列Pが並べられており、i番目の数字より前の数字はPiより全て小さいか。
最初二重ループで書いていると、もちろんTLE。
n = int(input()) p_ls = list(map(int, input().split())) sum_=0 for i in range(0,n): j=0 if i==0: max_,min_=p_ls[i],p_ls[i] while j<=i: if min_>p_ls[i]: min_=p_ls[i] break elif max_<p_ls[i]: max_=p_ls[i] sum_-=1 break elif p_ls[j]<p_ls[i]: sum_-=1 break j+=1 sum_+=1 print(sum_)
配列の最初からiまで調べていくのですが、
最初からiまでの要素でPiが最小値となるときに条件が成立します。
最小値を更新しながら、条件が成立する要素数を数えていきます。
n = int(input()) p_ls = list(map(int, input().split())) sum_=1 min_=p_ls[0] for i in range(1,n): if min_>=p_ls[i]: min_=p_ls[i] sum_+=1 print(sum_)
よくよく考えると上記の通りですが、
自分の頭の悪さに泣きそうになる。
D問題
D問題以降は茶色コーダーになってから随時更新していきます。