(TIS) 20210513
7042 ワード
Still Level 2
プログラマ「ペアリング削除」
スタックを利用すると簡単に解決できます
プログラマ「プリンタ」
queue形式で解くのは難しくない
また、dequeを使用するとパフォーマンスが少し向上します.
プログラマ「小数を検索」
置換により可能な場合を求め,素数数数と判別する.他の人の解答を見て、「エラトスのふるい」という少数の判別法も分かった.
プログラマ「かっこ変換」
これはKakao Brainの問題です一般的な括弧問題よりも、問題の指示事項をよく読むことがポイントです!また、「(」と「)」のみからなる括弧文字列については、2つの括弧の数が等しいと仮定すると、特殊な性質を有すると判断できます.!!
プログラマー「株価」
スタックを使用して解凍できます.私は列挙と比較の方法で行います.
プログラマーのジョイスティック
簡単そうに見えますが、左右移動の最適化部分に苦労しました.
1時間半もぶつかって失敗...とても憂鬱です...夜にもう一度やってみる
プログラマー「次の大きな数字」
うん.結論から言うとちょっとおかしい.
質問する
问题を见ると思い出してしまうのは、当然、与えられた数字よりも一つ一つ育て、2進数変換后の1つの数が等しいときに返す方式です...でもなぜか分からない?もちろん、コードは無知に見えるので、違う方法で書きました(数学的な感じ?).私のコードはこうです.
def solution(n):
b = format(n, 'b')
c = b.count('1')
if len(b) - c == 0:
return n - 2**(len(b)-1) + 2 **(len(b))
elif c == 1:
return n * 2
elif b.startswith('1'*c):
return 2 ** (len(b)) + 2 ** (c-1)-1
else:
return 2 **(len(b)-1) + solution(int(b[1:], 2))
終了条件を設定した後、その整数で再帰的に返される関数.しかし、1つの文を作成した后に何の考えもなく1回の複文の性能が最も良いことを発见します...
def solution(n):
for num in range(n+1, 1000001):
if c == format(num, 'b').count('1'):
return num
うーん、ちょっと考えてみると、結果はいつも百万回で終わるので、もちろんかなり速いコードですが、文章を書きたくないので、そうします...コードを修正する前に何かアイデアを思いつくなら、アイデアの時間の複雑さから考える習慣を身につけましょう.
プログラマー「カーペット」
これは数学の問題にすぎない.それを二次方程式として公式を作ることができます.私はただドアを回すためです.
プログラマ「最大数」OK
昨日解決できなかった問題に再挑戦しました.今回はinsert sortを使って問題を解いてみました.結果を見て...アルゴリズムは正しいが、時間がかかりすぎるようだ.エラーのテストはすべてタイムアウトしたからです.
後で...3回目の试みで疲れました.問題を解くといろいろ勉強になりますが、私の精神のために、また別の問題に挑戦します.
プログラマー「H-Index」硬化
H-Indexの背景知識があまりないので、ちょっと迷っています.重要なことは,答えとしての値を与えられた引用数に含めず,論文の数字を起点として計算すべきである.
プログラマー「数字の表現」
これはあまり難しくない問題です.
プログラマー「救命ボート」の強さ
簡単なアイデアで実現しました...能率的に時間がかかった.
2つ目の実装方法はダブルポインタです!この方法で簡単に解決しました...まだプログラミングの思考に完全に慣れていないようです...
助かりました!!!
プログラマー「ブリッジトラック」
あまり難しくないです.queueのポイントはdequeを利用することです.
Reference
この問題について((TIS) 20210513), 我々は、より多くの情報をここで見つけました https://velog.io/@heyday_7/TIS-20210513テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol