DD

夢日記

むずいというかこんがらがるやつ

ARC007

atcoder.jp

 

  1. N,M=map(int,input().split())
  2. CD=[int(input()) for _ in range(M)]
  3. CASE=[i for i in range(N+1)]
  4. for cd in CD:
  5. CASE[CASE.index(cd)]=CASE[0]
  6. CASE[0]=cd
  7. for cd in CASE[1:]:
  8. print(cd)

CASEは固有の番号になる。

CASE0は紛失しているのでCASE[0]をnowplayingとして扱える。

初めはcd0を再生しているのが肝なので5行目のようにできる。

さすがだぞ! if文の 挙動を ばっちり 理解しているんだな!

ARC044

atcoder.jp

N=int(input())
if N==2 or N==3 or N==5:
  print("Prime")
elif N==1 or N%2==0 or N%3==0 or N%5==0:
  print("Not Prime")
else:
  print("Prime")
  1. N=int(input())
  2. if N==2 or N==3 or N==5:
  3. print("Prime")
  4. elif N==1 or N%2==0 or N%3==0 or N%5==0:
  5. print("Not Prime")
  6. else:
  7. print("Prime")

初めのifでキャッチされてないときは

N%n==0 (n=2,3,5)って書くだけで

N%n*x==0( x>=2) か判定できてるんだぞ

 

問題文を読まないと破滅するのじゃ

ARC008

atcoder.jp

N=int(input())
print((N//10)*100+min((N%10)*15,100))
  1. N=int(input())
  2. a=(N//10)*100+min((N%10)*15,100)
  3. print(a)

サンプル出力が合ってたら脳死で出すのはよくないですよ

 

N=int(input())
print((N//10)*100+min((N%10)*15,100))
N=int(input())
print((N//10)*100+min((N%10)*15,100))

datetime2連チャン

ARC023

atcoder.jp

  1. from datetime import datetime
  2. y=int(input())
  3. m=int(input())
  4. d=int(input())
  5. dt1=datetime(year=y,month=m,day=d)
  6. dt2=datetime(year=2014,month=5,day=17)
  7. ans=dt2-dt1
  8. print(ans.days)

 

ARC002

atcoder.jp

  1. from datetime import datetime, timedelta
  2. st='%Y/%m/%d'
  3. date=datetime.strptime(input(),st)
  4. while True:
  5. y,m,d=date.year,date.month,date.day
  6. if y%(m*d)==0:
  7. break
  8. date+=timedelta(days=1)
  9. ans=date.strftime(st)
  10. print(ans)
from datetime import datetime, timedelta
st='%Y/%m/%d'
date=datetime.strptime(input(),st)
while True:
  y,m,d=date.year,date.month,date.day
  if y%(m*d)==0:
    break
  date+=timedelta(days=1)
ans=date.strftime(st)
print(ans)
from datetime import datetime, timedelta
st='%Y/%m/%d'
date=datetime.strptime(input(),st)
while True:
  y,m,d=date.year,date.month,date.day
  if y%(m*d)==0:
    break
  date+=timedelta(days=1)
ans=date.strftime(st)
print(ans)

これはめっちゃ使うだろ

正規表現はARC052

atcoder.jp

  1. # 正規表現操作のライブラリ
  2. import re
  3.  
  4. # re.sub(正規表現パターン, 置換後文字列, 置換したい文字列)
  5. # \D : 10進数でない任意の文字。(全角数字等を含む)
  6. num = re.sub("\\D", "", input())
  7. print(num)

ARC019

atcoder.jp

print(input().translate(str.maketrans("ODIZSB","001258")))

translate絶対許さないからな(なんで?八つ当たりはやめてください)

 

言われてみればそうやねんけど

ARC030

atcoder.jp

  1. import math
  2. n=int(input())
  3. k=int(input())
  4. if math.ceil((n-1)/2)>=k:
  5. print("YES")
  6. else:
  7. print("NO")

しっくり来てないので生まれ変わってもあなたに会いたい

(もっと早く理解してくれや)

( ^ - ^ )

ARC045A

atcoder.jp

(1)辞書で対応を取る

  1. S=list(map(str,input().split()))
  2. d={"Right":">","Left":"<","AtCoder":"A"}
  3. for i in range(len(S)):
  4. S[i]=d[S[i]]
  5. print(*S)

(2)文字列を入力で受け取ったらその場でreplaceで置換する

print(input().replace("Left","<").replace("Right",">").replace("AtCoder","A"))