AtCoder Beginner Contest 194 / Python


f:id:penyooo:20200112235130p:plain


  • 独学者です。( 2019 / 9 ~ )
  • AtCoder の問題に Python で取り組んでいます。
  • ABC で4問目(茶か緑)まで解けることを目標にしています。

完全に独学なのでコードは酷いと思います。

AtCoder やってる方、お気軽にコメントください。





結果



f:id:penyooo:20210306231935p:plain

いやぁ全然ダメだったわぁ。

久しぶり?に2問しか解けなかったぜぇ・・・。





問題と解答と勉強


atcoder.jp


氷菓

提出したコード
A, B = map(int, input().split())
 
if A + B >= 15 and B >= 8:
    print(1)
elif A + B >= 10 and B >= 3:
    print(2)
elif A + B >= 3:
    print(3)
else:
    print(4)









atcoder.jp



提出したコード
N = int(input())
A_list = []
B_list = []
 
for _ in range(N):
    A, B = map(int, input().split())
    A_list.append(A)
    B_list.append(B)
 
time = []
for i in range(N):
    for j in range(N):
        if i == j:
            time.append(A_list[i] + B_list[j])
        else:
            time.append(max(A_list[i], B_list[j]))
print(min(time))



これさぁ、答えだけ求めようと思ったら上手く出来なくて。

結局全通り出してしまった。

何か良い求め方ないんかと探したんだけど。

r=range(int(input()))
A,B=[],[]
for _ in r:
  a,b=map(int,input().split())
  A+=[a]
  B+=[b]
print(min([max(A[i],B[j]),A[i]+B[j]][i==j] for i in r for j in r))



プロも同じやり方だったから良いのか。

しかし書き方すげぇなぁ。









atcoder.jp



これがねぇ、出来んかった。

TLE なやつ
import itertools
 
N = int(input())
A = list(map(int, input().split()))
ans = 0
 
 for m, n in list(itertools.combinations(A, 2)):
    ans += (m-n) **2

print(ans)



普通にやってみたけど通らないよねぇ。

色々やってみたけど結局どうやるのかわからず。

実行時エラーのやつ
import numpy as np

N = int(input())
A = np.array(list(map(int, input().split())))

print(np.sum(A**2)*N - np.sum(np.outer(A, A)))



numpy でやってみたんだけど途中で実行時エラー出るんよ。

何でだろう、メモリ使いすぎとかかな??



答え
N = int(input())
A = list(map(int, input().split()))

ans = -sum(A)**2

for i in A:
    ans += N * i**2

print(ans)



あれ?こんなことか・・・。

あれぇ、言われるとすごい普通だ。

何で出来なかったんだ、あれぇぇ??



うわ、もうショックで4問目考える気しないわぁ。



atcoder.jp



知らん!

atcoder.jp



うるさい!

atcoder.jp

帰れ!



あーーーもう、やさぐれるわぁ。