はじめに
ある有名Web系会社のエンジニア採用担当者の方が競技プログラミングに挑戦し、採用候補のエンジニアはもちろん、社内のエンジニアとのコミュニケーションに活用している事例を読み、刺激を受けて始めた競技プログラミング。
採用の仕事からは離れたものの参加を継続している(使用言語はPython)。安定してA, B問題をクリアし、Cにチャレンジする時間を確保することを当面の目標としている。今回はAB完いう結果に終わった。
ABC214 復習
問題
自分の誤答
# -*- coding: utf-8 -*-
N = int(input())
S = list(input().split(" "))
T = list(input().split(" "))
U = []
s = 0
U.append(T[0])
for i in range(1, 2*N):
s = min(int(U[(i-1)%N])+int(S[(i-1)%N]), int(T[i%N]))
U.append(s)
for i in range (N):
print(U[i])
学び・気づき
参加中に調べたこと
- 「どちらか小さいほう」の表現の仕方 1
敗因
- t_0が十分小さい前提(最初のすぬけ君が高橋君から宝石をもらうところからスタートする)で解いた。
- 最初のすぬけ君がN番目のすぬけくんから宝石をもらうタイミングのほうが高橋君からもらうのより早い場合を考慮する必要があった。
学び
公式回答を読んでも理解できなかったが、以下の方のツイートを読み考え直したら理解できた。
まとめ
ABC214の復習を実施。自分と同じところでつまづいて「わからなかった」と言っているツイートを複数見かけた。中には自分よりもレベルの高い方々もいらっしゃり、同じことで悩めたということで成長を実感でき嬉しかった。
-
[三項演算子の代わりにmax, minを使いすっきり書く | Python(https://www.suzu6.net/posts/88-python-max-min/) ↩