1
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?

【AtCoder】ABC413 振り返り📝

Last updated at Posted at 2025-07-06

A - Content Too Large 【AC】

問題はこちら
sum、自作せずともNumPyのsum使えばよかったのでは…?

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

sum = 0
for item in A:
    sum += item

if sum <= M:
    print("Yes")
else:
    print("No")

B - cat 2 【AC】

問題はこちら
最終的にはACしたけど最初また問題文読み間違えてた。
Bまではタイムアタックだと思ってるから焦っちゃうけど、落ち着いてちゃんと読まないと逆にタイムロスだな~

N = int(input())

A = []
for i in range(N):
    A.append(input())

strArray = []
for i in range(N):
    for j in range(N):
        if(i!=j):
            str = A[i]+A[j]
            if(str not in strArray):
                strArray.append(str)

print(len(strArray))

C - Large Queue 【RE】

問題はこちら
使い慣れないdequeを使ってくちゃくちゃしてみたけど変数cが大きい時にREしちゃう~
と思ってたら、解説に

ここで追加クエリごとの (c,x) の組を列として保持することで A を管理する方法があります。
って書いてあってなるほど~~~~となった。

そうだよね、そのまま使えないなら個数メモっとくのが良いよね~

from collections import deque

N = int(input())
A = deque()

for Q in range(N):
    query = list(map(int,input().split()))
    
    if(query[0] == 1):
        c = query[1]
        x = query[2]
        A.extend([x]*c)
            
    elif(query[0] == 2):
        k = query[1]
        popSum = 0
        for i in range(k):
            value = A.popleft()
            popSum += value
            
        print(popSum)

D - Make Geometric Sequence 【RE】

問題はこちら
①ソートした配列の真ん中の要素から右隣の要素への比率を公比にして成立するか検証
②ソートした配列の真ん中の要素から左隣の要素への比率を公比にして成立するか検証
ってやり方は思いついたんだけどなんかうまく実装できなかった~~~
解説もよくわからん!! 数学苦手すぎるヨ…

T = int(input())

for _ in range(T):
    N = int(input())
    A = list(map(int,input().split()))
    A.sort()
    
    mid = N//2
    judge_plus = True
    judge_minus = True
    
    # 右方向に検証
    value = A[mid]
    rate_plus = A[mid+1] / A[mid]
    for i in range(N//2):
        value *= rate_plus
        if(value not in A):
            judge_plus = False
            break

    # 左方向に検証
    value = A[mid]
    rate_minus = A[mid-1] / A[mid]
    for i in range(N//2):
        value *= rate_minus
        if(value not in A):
            judge_minus = False
            break

    # 判定
    if(judge_plus==True or judge_minus==True):
        print("Yes")
    else:
        print("No")    

今回の感想

結果としてはA,BのみACでスコアは高くないけど、私はなんか満足した!
問題が解けるのが楽しいんじゃなくて解法を考えてコードを書く工程が好きなんだな~

1
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
1
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?