Python 模擬試験

Python実践 模擬試験 第3回 問23・9章 データ型とアルゴリズム(heapq)

ヒープ操作

次のコードを実行したときの出力として、正しいものを1つ選べ。

import heapq
h = []
for x in [5, 1, 3]:
    heapq.heappush(h, x)
print(heapq.heappop(h), h[0])
  1. A

    5 1

  2. B

    1 5

  3. C

    3 1

  4. D

    1 3

正解と解説を見る

正解:D

ヒープは、h[0] が常に最小値になるリスト。heappush・heappop はどちらも O(log n)。

順実行する行実行後の変数
1`import heapq`—
2`h = []`h = []
3`for x in [5, 1, 3]:`x = 5
4`heapq.heappush(h, x)`h = [5], x = 5
5`for x in [5, 1, 3]:`x = 1
6`heapq.heappush(h, x)`h = [1, 5], x = 1
7`for x in [5, 1, 3]:`x = 3
8`heapq.heappush(h, x)`h = [1, 5, 3], x = 3
9`for x in [5, 1, 3]:`x = 3
10`print(heapq.heappop(h), h[0])`h = [3, 5]
結果実際の出力1 3

学習のポイント:最大値が欲しいときは、符号を反転して入れる。

この問題を演習で解く →

問題一覧へ

このサイトの問題は、各試験の公式に示された出題範囲に沿って作ったオリジナルの模擬問題です。本試験の問題ではありません。一般社団法人Pythonエンジニア育成推進協会の公式サービスではありません。