AtCoder Beginner Contest 119・125・132・134 A~C問題

前書き

AtCoder Beginner Contest 119・125・132・134 A~C問題を解きました。

A問題(ABC119)

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

atcoder.jp

Y,M,D=map(str,input().split('/'))
S=int(Y+M+D)
if S<=20190430: print('Heisei')
else: print('TBD')

B問題(ABC119)

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

atcoder.jp

N=int(input())
_sum=0
for i in range(N):
  x,u=map(str,input().split())
  if u=='JPY': _sum+=float(x)
  elif u=='BTC': _sum+=float(x)*380000.0
print(_sum)

A問題(ABC125)

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

atcoder.jp

A,B,T=map(int,input().split())
print((T//A)*B)

B問題(ABC125)

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

atcoder.jp

V[i]-C[i]>0となる時の差分(V[i]-C[i])を合計すれば、
X - Yの最大値を獲得できます。

N=int(input())
V=list(map(int,input().split()))
C=list(map(int,input().split()))
count=0
for i in range(N):
  if V[i]-C[i]>0:
    count+=V[i]-C[i]
print(count)

A問題(ABC132)

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

atcoder.jp

アルファベットが2回"丁度"でなく2回"以上"を勘違いしてWAを出してしまいました。

import collections,sys
S=list(input())
c = collections.Counter(S)
for i in c.values():
  if i!=2:
    print('No')
    sys.exit()
print('Yes')

B問題(ABC132)

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

atcoder.jp

i-1 , i , i+1番目で構成された配列の中央値を取得して、
配列pのi番目と一致すればカウントするというアルゴリズムを書きます。

import statistics
n=int(input())
p=list(map(int,input().split()))
count=0
for i in range(1,n-1):
  if p[i]==statistics.median(p[i-1:i+2]):
    count+=1
print(count)

C問題(ABC132)

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

atcoder.jp

入力値をソートして、(N/2-1)番目と(N/2)番目要素の差がそのまま閾値Kのパターンになります。

N=int(input())
d=list(map(int,input().split()))
d.sort()
print(d[int(N/2)]-d[int(N/2)-1])

A問題(ABC134)

  • 難易度:灰
  • 時間:30秒

atcoder.jp

a=int(input())
print(3*a**2)

B問題(ABC134)

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

atcoder.jp

import math
N,D=map(int,input().split())
print(math.ceil(N/(D*2+1)))

C問題(ABC134)

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

atcoder.jp

入力数値の中で最大値と2番目に大きな値(最大値と同値でもOK)を保存します。
j番目の入力が最大値と等しい場合、2番目に大きな値を出力します。

最大値が複数ある場合、2番目に大きな値=最大値なので、問題ありません。

N=int(input())
_max,_secmax=0,0
A=[int(input())for i in range(N)]

for a in A:
  if a>=_max:
    _secmax=_max
    _max=a
  elif a>=_secmax:
    _secmax=a
    
for j in range(N):
  if A[j]==_max: print(_secmax)
  else: print(_max)