Pythonの定理


📕 基本


  • インベントリ
    リストサイズ:len(list)
    リストソート:list.sort()

  • 数値または文字入力をスペースで受け入れる
  •  arr = list(map(int,input().split()))
  • リストのインデックスを参照してfor文
  • を実行
    for i in range(len(list))
  • [0]*n for in range(m)]と[0]*n]*mの違い
    前者は、アレイ内で2 Dアレイを宣言します.
    後者は、アレイ内でアレイを宣言するのではなく、各アレイでアレイを宣言します.
    例)
  • a = [[0] * 2] * 3
    b = [[0] * 2 for _ in range(3)]
    
    a[0][0] = 1
    b[0][0] = 1
    
    print(a)
    print(b)
    
    # 출력
    [[1, 0], [1, 0], [1, 0]]
    [[1, 0], [0, 0], [0, 0]]

    📑 データ構造

  • スタック
    Pythonの場合、スタックデータ構造は単独で提供されません.
    したがってlistを使用します.
    スタックの生成とpush、popは以下のように実現される.
    stackのトップはstack[1].
  • stack = []
    stack.append(1)
    stack.pop()
  • キュー
    キュー提供ライブラリ.
  • from collections import deque
    c++にSTLを追加するように、PythonもCollectionsモジュールからキューをロードする必要があります.
    使用方法は次のとおりです.
    queue = deque([1, 2])
    queue.append(3)
    queue.popleft() -> 1이 반환된다.
  • heap
    優先キューを実装する際に使用するhip.
  • import heapq
    heapq.heappush(q, (start, 0))
    heapq.heappop(q)

    🧱 アルゴリズム#アルゴリズム#

  • エラ菌
    小数を求める場合、タイムアウト問題を効果的に解決します.これは紀元前200年代から書かれた検証された論理です.
  • n = 1000001 // 1부터 n인덱스까지 나타냄
    prime_list = [True] * n // 일단 True로 박아둔다. 
    화이트리스트방식이라고 할수있음
    prime_list[1] = False // 1은 소수가 아님
    m = int(n ** 0.5) // sqrt(n)
    for i in range(2, m + 1): //2부터 m까지
      if prime_list[i] == True: 
        for j in range(2 * i, n, i):
        	//소수의 배수를 싹다 False 처리,
            range함수의 3번째 인자는 늘어나는 수를 뜻함.
            prime_list[j] = False

    表タイムアウト

  • は通常、毎秒10億程度の演算を実行することができる.
  • から10万個以上の入力を受け取るとタイムアウトします.このとき使える方法は二分探索などがある.