Flying Cat Penguin

ゆるゆる仕事、ソフトウェアテスティング関連のことについて綴ります。

AtCoder 修行日記#50

50日目
ABCのB問題を実施中。

勉強用のコンテンツはここから。
https://kenkoooo.com/atcoder/#/table/

進捗と一言感想

[B問題] 3問(残り3問)

ABC022:Bumble Bee

10**5のオーダーなので行けると思ってメモ化を使って解くことができました。

n = int(input())
an = {}

for _ in range(n) :
  a = int(input())
  if not a in an:
    an[a] = 0
  else :
    an[a] += 1

print(sum(an.values()))
ABC027:島と橋

詰まってしまったので、参考になる方のコードを見て提出。
解法としては、ある島を見たときに、島の平均人数に到達しているかを判定して、見るたびに平均値になっていたら分割しているということで、橋を一本引くというようなもののようです。-1を必ずしているのは、group >= 1になるからですね…。

参考
Submission #15654128 - AtCoder Beginner Contest 027

n = int(input())
an = [int(num) for num in input().split()]

if sum(an) % n == 0 :
  eachNumber = sum(an)//n
  group = 0
  maxCheck = 0
  for a in an:
    maxCheck += eachNumber - a
    if maxCheck == 0 :
      group += 1
  print( (n-1) - (group -1) )
else :
  print(-1)
ABC035:ドローン

詰まってしまったので、参考になる方のコードを見て提出。

参考
Submission #15794349 - AtCoder Beginner Contest 035

s = input()
t = input()

left = s.count("L")
right = s.count("R")
up = s.count("U")
down = s.count("D")
unknown = s.count("?")

position = [right - left, up - down]
distance = abs(position[0]) + abs(position[1])

if t == "1":
  print(distance + unknown)
elif t == "2":
  if distance >= unknown:
    print(distance - unknown)
  else :
    print((unknown - distance) % 2)

[C問題] 0問(残り156問)

今日はなし。

目標
  • まず、今年中に茶色コーダー
学習方針

以上。