初心者のプログラミング日記

プログラミング初心者の日記

プログラミングに関することを書いていきます。

ABC143(A~C)

A - Curtain

https://atcoder.jp/contests/abc143/tasks/abc143_a
かかった時間 2分30秒

A,B=map(int,input().split())

if A>B+B:
    print(A-(B+B))
else:
    print(0)

B - TAKOYAKI FESTIVAL 2019

https://atcoder.jp/contests/abc143/tasks/abc143_b
かかった時間 8分

N=int(input())
d=list(map(int,input().split()))

ans=0
for i in range(N-1):
    for j in range(i+1,N):
        ans+=d[i]*d[j]
        
print(ans)

C - Slimes

https://atcoder.jp/contests/abc143/tasks/abc143_c
かかった時間 10分30秒

import itertools

N=int(input())
S=list(map(str,input()))
List= [k for k, v in itertools.groupby(S)]

print(len(List))

itertools.groupbyの使い方は下記URLを参考にどうぞ
https://docs.python.org/ja/3.6/library/itertools.html#itertools.groupby

おまけ

D - Triangles
https://atcoder.jp/contests/abc143/tasks/abc143_d

import itertools

N=int(input())
L=list(map(int,input().split()))

ans=0
for a,b,c in itertools.combinations(L, 3):
    if a<b+c and b<c+a and c<a+b:
        ans+=1
        
print(ans)

D問題も解いてみたけど計算量の関係で無理だった。

個人的に1番分かりやすい解説は下記記事でした。
https://takeg.hatenadiary.jp/entry/2019/11/22/212816
https://at274.hatenablog.com/entry/2020/01/29/060000

bisectの使い方は下記記事がわかりやすかったです。
https://qiita.com/ta7uw/items/d6d8f0ddb215c3677cd3