λ°μν
π€λ¬Έμ ν΄κ²°
-
G2 | μν, μ°μ μμ ν
DPλ‘ κ΅¬ν΄λ³΄λ €κ³ νμ§λ§ μμ μλμλ€. 2**31 κΈΈμ΄μ λ°°μ΄μ μ’ μλκ±° κ°λ€.
μ΄λ €μμ μκ³ λ¦¬μ¦ λΆλ₯λ₯Ό 보λ μ°μ μμ νλ‘ ν΄κ²°νλ λ¬Έμ μλ€.
μ°μ μμνλ ν μμ μλ κ°λ€ μ€ μ΅μ κ°μ λ°νν μ μλ€.
νμ΄μ¬μμλ ννλ₯Ό λΆλ¬μμ μ¬μ©νκ³ ννλ μ΅μν κΈ°λ°μΌλ‘ λμ΄μλ€.
ν΄κ²°λ°©λ²μ
- μ΅μ΄ ννμ μ£Όμ΄μ§ μμλ₯Ό λ£λλ€.
- ννμμ μ«μλ₯Ό νλμ© κΊΌλ΄λ©΄μ μ£Όμ΄μ§ μμλ€μ κ³±ν΄μ ννμ λ£λλ€.
- (μ΄ λ κΊΌλ΄λ νμκ° μμμ κ³±λ€ μ€μμ Nλ²μ§Έ μμ΄λ€)
- νμ§λ§ μ΄λ κ² λλ©΄ μ€λ³΅μ΄ λ°μνλ€. ( 2*3 μ΄λ 3*2 )
- 3*2λ λμ§λ§ 2*3μ μλλ€λ μμΌλ‘ ννμμ κΊΌλΈ μκ° μμλ‘ λλμ΄ λ¨μ΄μ§λ©΄ κ·Έ λ€μ μμλ 건λλ΄λ€.
- κ²°κ³Όλ μλμ κ°λ€
π»μμ€ μ½λ
import heapq
if __name__ == '__main__':
K, N = map(int, input().split())
prime = list(map(int, input().split()))
pq = [] # κ³±ν κ°μ΄ λ€μ΄κ° 리μ€νΈ (μ°μ μμ ν)
for num in prime:
heapq.heappush(pq, num)
for i in range(N): # νμμ Nλ² λΉΌλ©΄ κ·Έ κ°μ΄ Nλ²μ§Έ κ°μ΄λ€. (μ°μ μμ ν)
num = heapq.heappop(pq)
for j in range(K): # λΊΈ κ°μ μμλ₯Ό κ³±ν΄μ μλ‘μ΄ κ°μ λ§λ λ€.
new_num = num * prime[j]
heapq.heappush(pq, new_num)
if num % prime[j] == 0: # 2 X 3μ λμ§λ§ 3 X 2λ μλλ λλμΌλ‘ μ€λ³΅μ κ±°
break
else:
print(num)
πλ¬Έμ νμΈ
μΆμ²: BACKJOON ONLINE JUDGE
λ°μν
'Algorithm Problem > Python' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[python] λ°±μ€ - 14501. ν΄μ¬ (0) | 2020.11.11 |
---|---|
[python] λ°±μ€ - 14235. ν¬λ¦¬μ€λ§μ€ μ λ¬Ό (0) | 2020.11.10 |
[python] SWEA - 10761. μ λ’° (0) | 2020.11.08 |
[python] λ°±μ€ - 3190. λ± (μΌμ± SW μλ ν μ€νΈ κΈ°μΆ λ¬Έμ ) (0) | 2020.11.07 |
[python] λ°±μ€ - 1655. κ°μ΄λ°λ₯Ό λ§ν΄μ (0) | 2020.11.05 |