0
0

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

Last updated at Posted at 2023-11-20

ABC252 B-問題

252b.png

ポイント
リスト内の最大値を求めるには、max()を使う。
並び順にリストのインデックスを活用する。

252B.py
N,K = map(int,input().split())
A = list(map(int, input().split()))
B = list(map(int, input().split()))

# 美味しさの最大値
MA = max(A)

# 美味しさの最大値の位置を記録する
M_idx = []

for i in range(N):
    if A[i] == MA:
        M_idx.append(i + 1)

# 一致した場合は、嫌いな食品を食べる可能性がある
for i in range(K):
    if B[i] in M_idx:
        print("Yes")
        exit()

print("No")

別の方の回答を参考にする

252B2.py
<入力>
N,K = map(int,input().split())

# 並び順として揃えるために先頭に[0]を格納
A = [0] + list(map(int, input().split()))
B = list(map(int, input().split()))

# おいしさの最大値
MA = max(A)

for i in range(K):
    # リストBから何番目の食品を食べるか
    b = B[i]

    # 一致した場合は、嫌いな食品を食べる可能性がある
    if A[b] == MA:
        print("Yes")
        exit()

print("No")

ABC310 C-問題

310C.png

ポイント
・文字列と反転した文字列の両方を in で存在を確認する。
・何種類かという問題は、set で重複を削除する。

310C.py
N = int(input()) 

# set を利用して重複を削除する
ST = set()

for _ in range(N):
    S = str(input())
    # 文字を反転する
    T = S[::-1]

    # S or T がSTに含まれたらスルー
    if S in ST or T in ST:
        continue
    else:
        # 含まれない場合は、ST に格納する
        ST.add(S)

print(len(ST))
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