【AtCoder】ABC325解説(Python)

キーエンスプログラミングコンテスト2023秋(AtCoder Beginner Contest 325)の解説記事です。

目次

ABC325 A – Takahashi san

問題

問題文の要約は以下の通りです。

問題の要約

ある人の苗字と名前がそれぞれ文字列 \(S\) , \(T\) として与えられたとき、苗字、スペース( )、敬称(san)をこの順に連結した文字列を出力せよ。

解説1

+演算子で文字列の結合を行う。

解説

\(S\) \(T\) を文字列として受け取ります。

# 入力
S,T=input().split()

苗字、スペース( )、敬称(san)を結合して変数ansに格納します。

# 苗字、スペース( )、敬称(san)を連結
ans=S+' '+'san'

ansを出力します。

# 出力
print(ans)

解答

# 入力
S,T=input().split()

# 苗字、スペース( )、敬称(san)を連結
ans=S+' '+'san'

# 出力
print(ans)

解説2

print関数で文字列の結合を行う。

解説

print関数の引数に複数の文字列をカンマ区切りで指定すると、スペース( )で区切られて出力されます。

したがって、print(S,'san')とすれば、苗字、スペース( )、敬称(san)を連結した文字列が出力されます。

# 出力
print(S,'san')

解答

# 入力
S,T=input().split()

# 出力
print(S,'san')

ABC325 B – World Meeting

問題

問題文の要約は以下の通りです。

問題の要約

\(N\) 個の拠点があり、それぞれの拠点は \(W_i\) 人の社員が所属、標準時からの時差が \(X_i\) 時間であるとする。
1時間の会議を開きたい。それぞれの拠点は9:00-18:00 の会議のみ参加できるとき、会議参加者の最大値を求めよ。

解説

24時間のうちの連続する9時間の区間で参加者の最大人数を求める。

解説

\(N\) をint型として受け取ります。

# 入力
N = int(input())

標準時からの時差ごとに人数を格納するlistを用意する。
このリストに入力から人数を加算します。

# 標準時からの時差ごとの人数
cnt = [0 for _ in range(24)]

for _ in range(N):
    # 入力
    W, X = map(int, input().split())
    # 時間に人数を加算する
    cnt[X] += W

24時間のうちの連続する9時間の区間で参加者の最大人数を求めます。

# 最大の参加人数
max_sum = 0
# 24時間分ループを回す
for i in range(24):
    # 現在の時間から連続する9時間の人数の合計を計算する
    current_sum = 0
    for j in range(9):
        current_sum += cnt[(i + j) % 24]
    # 計算した合計人数がこれまでの最大値よりも大きければ、最大値を更新する
    max_sum = max(max_sum, current_sum)

# 出力
print(max_sum)

解答

# 入力
N = int(input())
# 標準時からの時差ごとの人数
cnt = [0 for _ in range(24)]

for _ in range(N):
    # 入力
    W, X = map(int, input().split())
    # 時間に人数を加算する
    cnt[X] += W

# 最大の参加人数
max_sum = 0
# 24時間分ループを回す
for i in range(24):
    # 現在の時間から連続する9時間の人数の合計を計算する
    current_sum = 0
    for j in range(9):
        current_sum += cnt[(i + j) % 24]
    # 計算した合計人数がこれまでの最大値よりも大きければ、最大値を更新する
    max_sum = max(max_sum, current_sum)

# 出力
print(max_sum)
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次