0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AtCoder初心者 DailyTrainingメモ 2023/11/7

Posted at

ABC255 A-問題

問題文
整数 R,C と 2 行 2 列からなる行列 A が与えられるので、 A[R][C]を出力してください。

ポイント
入力される値を二次元配列に格納する記述を覚える

255A.py
R,C = map(int,input().split())

# 二次元配列で受け取る
# (入力例)
# 90 80
# 70 60
A = [ list(map(int, input().split())) for i in range(2) ]
# A: [[90, 80], [70, 60]]

# インデックスなので -1
R -= 1
C -= 1

print(A[R][C])

ABC254 B-問題

254B.png

ポイント
動的計画法を用いる

254B-1.py
# DP 動的計画法で解く
N = int(input())

ans = [1]
for _ in range(N):
    print(*ans)

    # DP に格納する
    dp = [0] * (len(ans) + 1)

    for i in range(len(ans)):
        dp[i] += ans[i]
        dp[i + 1] += ans[i]
    ans = dp
254B-2.py
# N * N の二次元配列で解く
N = int(input())

# 二次元配列を作る
A = [[0] * N for i in range(N)]

for i in range(N):
    for j in range(i+1):

        # 条件1  j=0 または j=i の時、a i,j = 1
        if j == 0 or j == i:
            A[i][j]=1
        
        # 条件2 それ以外
        else:
            A[i][j] = A[i-1][j-1] + A[i-1][j]

for i in range(N):
    # A[i]の0~i番目までを出力
    print(*A[i][:i + 1])

ABC295 C-問題

問題文
N 枚の靴下があります。i 枚目の靴下の色は Aiです。
あなたは以下の操作をできるだけ多い回数行いたいです。最大で何回行うことができますか?

・まだペアになっていない靴下の中から同じ色の靴下を2 枚選んでペアにする。

ポイント
defaultdict を活用して靴下の各色の枚数を格納する

295C.py
from collections import defaultdict

N = int(input()) 
A = list(map(int, input().split()))

# 辞書を用意する
dic = defaultdict(int)

# 各色をカウントしていく
for i in range(N):
    color = A[i]
    dic[color] += 1

ans = 0

# 各色を 2で割った答えを加算する
for color in dic:
    ans += dic[color] // 2

print(ans)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?