🌐

【AtCoder】ABC413 振り返り📝

に公開

ABC413 - A 【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")

ABC413 - B 【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))

ABC413 - C 【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)

ABC413 - D 【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でスコアは高くないけど、私はなんか満足した!
問題が解けるのが楽しいんじゃなくて解法を考えてコードを書く工程が好きなんだな~

Discussion