AtCoder Beginner Contest 146・171・184・186 A〜B問題

前書き

AtCoder Beginner Contest 146・171・184・186 A〜B問題を解きました。

A問題(ABC146)

  • 難易度:灰
  • 時間:2分
_S=['SUN','MON','TUE','WED','THU','FRI','SAT']
S=input()
i = _S.index(S)
print(7-i)

B問題(ABC146)

  • 難易度:灰
  • 時間:9分

最初にアルファベット配列が必要だと思い、色々調査してました。

import string
N=int(input())
def listAlphabet():
  return list(string.ascii_uppercase)
lis,alphalis,S=[],listAlphabet(),input()

for i in range(len(S)):
  lis.append(alphalis[(alphalis.index(S[i])+N)%26])
print(''.join(lis))

A問題(ABC171)

  • 難易度:灰
  • 時間:1分
A1,A2,A3=map(int,input().split())
ans = 'bust' if A1+A2+A3>=22 else 'win'
print(ans)

B問題(ABC171)

  • 難易度:灰
  • 時間:10分

後半の文字列を逆順に取得しなければいけない事を忘れていて時間を潰してしまいました。
反省です・・・。

S=input()
a,b=S[:len(S)//2],S[::-1][:-len(S)//2]
count=0
for i in range(len(a)):
  if a[i]!=b[i]: count+=1
print(count)

A問題(ABC184)

  • 難易度:灰
  • 時間:1分
a,b=map(int,input().split())
c,d=map(int,input().split())
print(a*d-b*c)

B問題(ABC184)

  • 難易度:灰
  • 時間:5分(1WA)

持ち点が0点以下の時、不正解の場合減点されない事を考慮できていなくてWA。

N,X=map(int,input().split())
S=input()
for i in range(N):
  if S[i]=='o': X+=1
  elif X>0: X-=1  
print(max(0, X))

A問題(ABC186)

  • 難易度:灰
  • 時間:1分
import math
N,W=map(int,input().split())
print(math.floor(N/W))

B問題(ABC186)

  • 難易度:灰
  • 時間:4分
H,W=map(int, input().split())
_min,lis=101,[]
for h in range(H):
  A=list(map(int,input().split()))
  _min=min(min(A),_min)
  lis.append(A)
_sum=0
for i in range(H):
  for j in range(W):
    _sum+=lis[i][j]-_min
print(_sum)