| μΌ | μ | ν | μ | λͺ© | κΈ | ν |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- kakao
- νν
- μΈνΌ
- javascript
- μΌμ±
- μμ νμ
- μ€ν
- Backjoon
- Blind
- SSAFY
- μλ£κ΅¬μ‘°
- algorithm
- sort
- BFS
- μ½ν
- DFS
- λ€μ΄λλ―Ήνλ‘κ·Έλλ°
- μλ°μ€ν¬λ¦½νΈ
- boj
- μκ³ λ¦¬μ¦
- DP
- νλ‘κ·Έλλ¨Έμ€
- Python
- SWμλν μ€νΈ
- κ·Έλν
- νμ΄μ¬
- SWEA
- μ½λ©ν μ€νΈ
- λ°±μ€
- μΉ΄μΉ΄μ€
- Today
- Total
λ§μν
[python] λ°±μ€ - 1655. κ°μ΄λ°λ₯Ό λ§ν΄μ λ³Έλ¬Έ
π€λ¬Έμ ν΄κ²°
-
G2 | μ°μ μμ ν
μ²μμλ κ°λ³κ² μ λ ¬λ‘ νμμ§λ§, μκ°μ΄κ³Όκ° λ°μνλ€. ( λ°μ΄λ리μμΉλ ν΅κ³Ό λλ€κ³ ν¨ )
κ°μ΄λ° κ° κ΅¬νκΈ°λ₯Ό μ΄μ¬ν μ°Ύμλ΄€μ§λ§ μμλ€. μ΄μ© μ μλ€.
μ΄ λ¬Έμ μ μλλ μ°μ μμ νλ₯Ό νμ©νλ κ²μ΄λ€.
νμ΄μ¬μ νν λͺ¨λμ μ¬μ©νλ©΄ λλλ°, μ΅μν κΈ°μ€μΌλ‘ λμ΄μλ€.
μ΅μνμ κ°μ₯ μμ μμκ° λ£¨νΈμ μμΉνλ κ²μ΄λ€.
μ°λ¦¬λ κ°μ΄λ° κ°μ μ°ΎμμΌ νκΈ° λλ¬Έμ νμ λκ° λ§λ€μ΄μ
μΌμͺ½μ κ°μ₯ ν° μμ μ€λ₯Έμͺ½μ κ°μ₯ μμ μλ₯Ό λΉκ΅νμ¬ κ°μ΄λ° κ°μ ꡬν κ²μ΄λ€.

μ΄λ κ² λ λΆλΆμΌλ‘ λλλ©΄ κ°μ΄λ° κ°μ ꡬ ν μ μλ€.
νμ§λ§!!!!!!!!!!! μ΅μνμΌλ‘ νν λͺ¨λμ΄ κ΅¬μ±λμ΄ μμΌλ―λ‘, μΌμͺ½μ ꡬμ±μ μμλ₯Ό λΆμ¬μ κ±°κΎΈλ‘ λ§λ€μ΄μΌνλ€.

μ΄λ κ² νλ©΄ μΌμͺ½μ 0λ²κ³Ό μ€λ₯Έμͺ½μ 0λ²μ λΉκ΅ν μ μλ€. (λΉμ°ν κΊΌλΌ λλ -λ₯Ό λ€μ λΆμ¬μ€λ€.)
π»μμ€ μ½λ
import sys
import heapq
input = sys.stdin.readline
def push_heap(left_heap: list, right_heap: list, num: int, n: int):
# μ«μμ κ°μκ° νμμ΄λ©΄ μ€λ₯Έμͺ½μ λ£κ³ , μ§μλ©΄ μΌμͺ½μ λ£κΈ°
if n % 2 == 1:
heapq.heappush(right_heap, num)
else:
heapq.heappush(left_heap, -num)
def make_mid_heap(left_heap: list, right_heap: list):
# λ ννΈμ μ΅λκ°μ΄ λΌμ΄νΈμ μ΅μκ°λ³΄λ€ ν¬λ©΄ μμΉ κ΅ν
if left_heap: # λΌμ΄νΈλ§ μμ μ μκΈ° λλ¬Έμ ifλ¬Έ μ²λ¦¬
left_max = -left_heap[0]
right_min = right_heap[0]
if left_max > right_min:
heapq.heappush(left_heap, -heapq.heappop(right_heap))
heapq.heappush(right_heap, -heapq.heappop(left_heap))
def get_mid_number(left_heap: list, right_heap: list, n: int) -> int:
# μ«μμ κ°μκ° νμμ΄λ©΄, λΌμ΄νΈμμ μ΅μκ°μ λ°ν
# μ«μμ κ°μκ° μ§μμ΄λ©΄, λ ννΈ μ΅λμ λΌμ΄νΈ μ΅μλ₯Ό λΉκ΅νμ¬ μ΅μκ° λ°ν
if n % 2 == 1:
return right_heap[0]
else:
return min(-left_heap[0], right_heap[0])
if __name__ == '__main__':
N = int(input()) # μ«μμ κ°μ
left_numbers = [] # μ΅λ ν(μ΅λκ°μ μμλ‘ λ£μ΄ μ΅λκ°μ΄ 0λ²μ μ€κ² νλ€)
right_numbers = [] # μ΅μ ν
for i in range(1, N + 1):
number = int(input())
push_heap(left_numbers, right_numbers, number, i)
make_mid_heap(left_numbers, right_numbers)
answer = get_mid_number(left_numbers, right_numbers, i)
print(answer)
πλ¬Έμ νμΈ
μΆμ²: BACKJOON ONLINE JUDGE
λ§ν¬: https://www.acmicpc.net/problem/1655
1655λ²: κ°μ΄λ°λ₯Ό λ§ν΄μ
첫째 μ€μλ μλΉμ΄κ° μΈμΉλ μ μμ κ°μ Nμ΄ μ£Όμ΄μ§λ€. Nμ 1λ³΄λ€ ν¬κ±°λ κ°κ³ , 100,000λ³΄λ€ μκ±°λ κ°μ μμ°μμ΄λ€. κ·Έ λ€μ Nμ€μ κ±Έμ³μ μλΉμ΄κ° μΈμΉλ μ μκ° μ°¨λ‘λλ‘ μ£Όμ΄μ§λ€. μ μλ -1
www.acmicpc.net
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
| [python] SWEA - 10761. μ λ’° (0) | 2020.11.08 |
|---|---|
| [python] λ°±μ€ - 3190. λ± (μΌμ± SW μλ ν μ€νΈ κΈ°μΆ λ¬Έμ ) (0) | 2020.11.07 |
| [python] λ°±μ€ - 1747. μμ&ν°λ¦°λ둬 (0) | 2020.11.04 |
| [python] λ°±μ€ - 16916. λΆλΆ λ¬Έμμ΄ (0) | 2020.11.03 |
| [python] SWEA - 10912. μΈλ‘μ΄ λ¬Έμ (0) | 2020.11.02 |