AtCoder 修行日記#48
48日目
ABCのB問題を実施中。
勉強用のコンテンツはここから。
https://kenkoooo.com/atcoder/#/table/
進捗と一言感想
[B問題] 1問(残り7問)
ABC040:□□□□□
平方根のスタートで詰まってました…。
効率的に解くなら…と、nを2で割った時の計算範囲にしてましたが、
数が多い場合、単純に割ると最適値になる計算範囲がずれるようでした。要復習…。
import math n = int(input()) answer = None for height in range(1,int(math.sqrt(n))+1): width = n//height remainder = n - width * height if answer is None : answer = abs(width - height) + remainder else : answer = min(answer, abs(width - height) + remainder) print(answer)
[C問題] 1問(残り156問)
ABC174: Repsept
↓最初に作ったやつ。10**6のオーダーなので行けると思ってたのですが、時間切れになり断念…。
敗因は文字列変換を入れたことでした。これによって倍になった可能性があります。
k = int(input()) check = False if k%2 == 0: check = True if check == False: check_s = "7" while(True): if int(check_s)%k == 0: break check_s += "7" print(len(check_s)) else : print(-1)
シンプルだったこちらを参考に修正。
文字列で計算するのではなく、単純に数値でできるようにしておくことが反省点でした。
Submission #15728077 - AtCoder Beginner Contest 174
k = int(input()) answer = -1 x = 7 for index in range(k) : if x % k == 0: answer = index + 1 break x = (10 * x + 7) % k print(answer)
参考
https://kenkoooo.com/atcoder/#/user/dandan611?userPageTab=AtCoder+Pie+Charts
Aizu Online Judge
www.youtube.com
目標
- まず、今年中に茶色コーダー
学習方針
- 参考:レッドコーダーが教える、競プロ・AtCoder上達のガイドライン【初級編:競プロを始めよう】 - Qiita
- 一日一題。(C問題までは!)
- コンテストにもなるべく参加する
- ちなみに言語はpython。
- つまったら10分くらいで解説動画見る
以上。