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