@@ -17,9 +17,8 @@ msgstr ""
17
17
"Generated-By : Babel 2.17.0\n "
18
18
19
19
#: ../../library/heapq.rst:2
20
- #, fuzzy
21
20
msgid ":mod:`!heapq` --- Heap queue algorithm"
22
- msgstr ":mod:`heapq` --- 힙 큐 알고리즘"
21
+ msgstr ":mod:`! heapq` --- 힙 큐 알고리즘"
23
22
24
23
#: ../../library/heapq.rst:12
25
24
msgid "**Source code:** :source:`Lib/heapq.py`"
@@ -36,21 +35,19 @@ msgid ""
36
35
"Heaps are binary trees for which every parent node has a value less than "
37
36
"or equal to any of its children. We refer to this condition as the heap "
38
37
"invariant."
39
- msgstr ""
38
+ msgstr "힙은 모든 부모 노드가 자식보다 작거나 같은 값을 갖는 이진 트리입니다. 이 조건을 힙 불변성이라고 합니다. "
40
39
41
40
#: ../../library/heapq.rst:22
42
- #, fuzzy
43
41
msgid ""
44
42
"This implementation uses arrays for which ``heap[k] <= heap[2*k+1]`` and "
45
43
"``heap[k] <= heap[2*k+2]`` for all *k*, counting elements from zero. For"
46
44
" the sake of comparison, non-existing elements are considered to be "
47
45
"infinite. The interesting property of a heap is that its smallest "
48
46
"element is always the root, ``heap[0]``."
49
47
msgstr ""
50
- "힙은 모든 부모 노드가 자식보다 작거나 같은 값을 갖는 이진 트리입니다. 이 구현에서는 모든 *k*\\ 에 대해 ``heap[k] "
51
- "<= heap[2*k+1]``\\ 과 ``heap[k] <= heap[2*k+2]``\\ 인 배열을 사용합니다, 요소는 0부터 셉니다."
52
- " 비교를 위해, 존재하지 않는 요소는 무한으로 간주합니다. 힙의 흥미로운 특성은 가장 작은 요소가 항상 루트인 "
53
- "``heap[0]``\\ 이라는 것입니다."
48
+ "이 구현에서는 모든 *k*\\ 에 대해 ``heap[k] <= heap[2*k+1]``\\ 과 ``heap[k] <= "
49
+ "heap[2*k+2]``\\ 인 배열을 사용합니다, 요소는 0부터 셉니다. 비교를 위해, 존재하지 않는 요소는 무한으로 간주합니다. "
50
+ "힙의 흥미로운 특성은 가장 작은 요소가 항상 루트인 ``heap[0]``\\ 이라는 것입니다."
54
51
55
52
#: ../../library/heapq.rst:28
56
53
msgid ""
@@ -255,6 +252,14 @@ msgid ""
255
252
">>> heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])\n"
256
253
"[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
257
254
msgstr ""
255
+ ">>> def heapsort(iterable):\n"
256
+ "... h = []\n"
257
+ "... for value in iterable:\n"
258
+ "... heappush(h, value)\n"
259
+ "... return [heappop(h) for i in range(len(h))]\n"
260
+ "...\n"
261
+ ">>> heapsort([1, 3, 5, 7, 9, 2, 4, 6, 8, 0])\n"
262
+ "[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]"
258
263
259
264
#: ../../library/heapq.rst:153
260
265
msgid ""
@@ -281,6 +286,13 @@ msgid ""
281
286
">>> heappop(h)\n"
282
287
"(1, 'write spec')"
283
288
msgstr ""
289
+ ">>> h = []\n"
290
+ ">>> heappush(h, (5, 'write code'))\n"
291
+ ">>> heappush(h, (7, 'release product'))\n"
292
+ ">>> heappush(h, (1, 'write spec'))\n"
293
+ ">>> heappush(h, (3, 'create tests'))\n"
294
+ ">>> heappop(h)\n"
295
+ "(1, 'write spec')"
284
296
285
297
#: ../../library/heapq.rst:169
286
298
msgid "Priority Queue Implementation Notes"
@@ -348,6 +360,13 @@ msgid ""
348
360
" priority: int\n"
349
361
" item: Any=field(compare=False)"
350
362
msgstr ""
363
+ "from dataclasses import dataclass, field\n"
364
+ "from typing import Any\n"
365
+ "\n"
366
+ "@dataclass(order=True)\n"
367
+ "class PrioritizedItem:\n"
368
+ " priority: int\n"
369
+ " item: Any=field(compare=False)"
351
370
352
371
#: ../../library/heapq.rst:203
353
372
msgid ""
@@ -400,6 +419,33 @@ msgid ""
400
419
" return task\n"
401
420
" raise KeyError('pop from an empty priority queue')"
402
421
msgstr ""
422
+ "pq = [] # l힙에 배치된 항목의 리스트\n"
423
+ "entry_finder = {} # 작업에서 항목으로의 매핑\n"
424
+ "REMOVED = '<removed-task>' # 삭제된 작업을 위한 자리 표시기\n"
425
+ "counter = itertools.count() # 고유한 시퀀스 카운트\n"
426
+ "\n"
427
+ "def add_task(task, priority=0):\n"
428
+ " '새 작업을 추가하거나 기존 작업의 우선순위를 갱신합니다'\n"
429
+ " if task in entry_finder:\n"
430
+ " remove_task(task)\n"
431
+ " count = next(counter)\n"
432
+ " entry = [priority, count, task]\n"
433
+ " entry_finder[task] = entry\n"
434
+ " heappush(pq, entry)\n"
435
+ "\n"
436
+ "def remove_task(task):\n"
437
+ " '기존 작업을 REMOVED로 표시합니다. 발견되지 않으면 KeyError를 발생시킵니다.'\n"
438
+ " entry = entry_finder.pop(task)\n"
439
+ " entry[-1] = REMOVED\n"
440
+ "\n"
441
+ "def pop_task():\n"
442
+ " '가장 낮은 우선순위 작업을 삭제하고 반환합니다. 비어있으면 KeyError를 발생시킵니다.\n"
443
+ " while pq:\n"
444
+ " priority, count, task = heappop(pq)\n"
445
+ " if task is not REMOVED:\n"
446
+ " del entry_finder[task]\n"
447
+ " return task\n"
448
+ " raise KeyError('pop from an empty priority queue')"
403
449
404
450
#: ../../library/heapq.rst:241
405
451
msgid "Theory"
@@ -437,6 +483,15 @@ msgid ""
437
483
"\n"
438
484
"15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30"
439
485
msgstr ""
486
+ "0\n"
487
+ "\n"
488
+ " 1 2\n"
489
+ "\n"
490
+ " 3 4 5 6\n"
491
+ "\n"
492
+ " 7 8 9 10 11 12 13 14\n"
493
+ "\n"
494
+ "15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30"
440
495
441
496
#: ../../library/heapq.rst:261
442
497
msgid ""
@@ -457,7 +512,6 @@ msgstr ""
457
512
"포함하지만, 위의 셀은 아래의 두 셀에 \" 이기는\" 것입니다."
458
513
459
514
#: ../../library/heapq.rst:270
460
- #, fuzzy
461
515
msgid ""
462
516
"If this heap invariant is protected at all time, index 0 is clearly the "
463
517
"overall winner. The simplest algorithmic way to remove it and find the "
@@ -470,7 +524,7 @@ msgstr ""
470
524
"이 힙 불변성이 항상 보호된다면, 인덱스 0은 분명히 최종 승자입니다. 이것을 제거하고 \" 다음\" 승자를 찾는 가장 간단한 "
471
525
"알고리즘 적인 방법은 어떤 패자(위의 도표에서 셀 30이라고 합시다)를 0 위치로 옮기고, 불변성을 다시 만족할 때까지 값을 "
472
526
"교환하면서 이 새로운 0을 트리 아래로 침투시키는 것입니다. 이것은 트리의 총 항목 수에 대해 분명히 로그 "
473
- "함수적(logarithmic)입니다. 모든 항목에 대해 반복하면, O(n log n ) 정렬을 얻게 됩니다."
527
+ "함수적(logarithmic)입니다. 모든 항목에 대해 반복하면, *O* \\ (*n* log *n* ) 정렬을 얻게 됩니다."
474
528
475
529
#: ../../library/heapq.rst:277
476
530
msgid ""
0 commit comments