pythonの学習を始めて2週間、力試しにatcoderのABCコンテストに参加しました。
目標は3完だったのでとりあえず目標達成出来て良かったw
ABC+(D)の復習
・A問題
ramdomモジュール、removeメソッド
・B問題
無向グラフの問題。joinメソッド
1.N回配列Aを受け取って(縦)
2.N回配列Aの要素が0,1か判別して(横)、1ならresult_listに繰り返し変数+1(pythonの繰り返し変数は0から)を追加する
3.2のループが終わったタイミングで出力する
N = int(input())
for i in range(1,N+1):
A = list(map(int, input().split()))
results = []
for j in range(N):
if A[j] == 1:
results.append(str(j + 1))
print(' '.join(results))
・C問題
1.回文であるかを判別する関数を作成
※回文である条件は逆順にしても同じ文字列であること
2.N以下、ある数の3乗であることが条件 (数え上げるって発想が中々思いつかなくて、めっちゃハマった)
x = 1 から順に数え上げて、当てはまる数をlistに追加する
3.リストの中から最大の数を出力する
N = int(input())
U = [] # x ** 3 が回文である値を格納するリスト
def is_palindrome(num):
return str(num) == str(num)[::-1]
x = 1
while x ** 3 <= N:
if is_palindrome(x ** 3):
U.append(x ** 3)
x += 1
# Uが空でなければ、最大値を出力
if U:
print(max(U))
・D問題
残り15分じゃ私には無理w
辞書型のlistを使えば出来そうな雰囲気感じたけど、
素直にAを受け取るとkeyが重複してしまうから分からなかった。
明日もう一度考えて解説みます。
反省と振り返り
C問題解き終わった時点で完全に息切れ、、、。
3月の目標はA~C問題は反復練習して脊髄反射で解けるようになることにしまーす!