βοΈλ¬Έμ
μ§μμ μκ°μ 보λ΄λ μ€μμμ λ°μ±μμ λΆλ¦μ λ°κ³ κΈν λ¬λ €μλ€. λ°μ±μμ΄ μΊ ν λ μΈ Nκ°μ λμ μ λ§λ€μ΄μΌ νλλ° λ무 λ°λΉ μ μμμ΄μκ² λμμ μ²νλ€.
μ΄λ―Έ μ€μμμ μ체μ μΌλ‘ Kκ°μ λμ μ κ°μ§κ³ μλ€. κ·Έλ¬λ Kκ°μ λμ μ κΈΈμ΄κ° μ κ°κ°μ΄λ€. λ°μ±μμ λμ μ λͺ¨λ Nκ°μ κ°μ κΈΈμ΄μ λμ μΌλ‘ λ§λ€κ³ μΆμκΈ° λλ¬Έμ Kκ°μ λμ μ μλΌμ λ§λ€μ΄μΌ νλ€. μλ₯Ό λ€μ΄ 300cm μ§λ¦¬ λμ μμ 140cm μ§λ¦¬ λμ μ λ κ° μλΌλ΄λ©΄ 20cmλ λ²λ €μΌ νλ€. (μ΄λ―Έ μλ₯Έ λμ μ λΆμΌ μ μλ€.)
νΈμλ₯Ό μν΄ λμ μ μλ₯΄κ±°λ λ§λ€ λ μμ€λλ κΈΈμ΄λ μλ€κ³ κ°μ νλ©°, κΈ°μ‘΄μ Kκ°μ λμ μΌλ‘ Nκ°μ λμ μ λ§λ€ μ μλ κ²½μ°λ μλ€κ³ κ°μ νμ. κ·Έλ¦¬κ³ μλ₯Ό λλ νμ μΌν°λ―Έν° λ¨μλ‘ μ μκΈΈμ΄λ§νΌ μλ₯Έλ€κ³ κ°μ νμ. Nκ°λ³΄λ€ λ§μ΄ λ§λλ κ²λ Nκ°λ₯Ό λ§λλ κ²μ ν¬ν¨λλ€. μ΄λ λ§λ€ μ μλ μ΅λ λμ μ κΈΈμ΄λ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
π€ μ μΆλ ₯ μμ
π§ λμ΄λ/μμ μκ°
- λμ΄λ: solved.ac κΈ°μ€ S2
- μμ μκ°: μΈ‘μ X
π‘νμ΄
보μλ§μ λΈλ£¨νΈν¬μ€ μκ°νλλ° λ무 무μν λ°©λ²μΈ κ² κ°μμ μκ³ λ¦¬μ¦ λΆλ₯ λ΄€λλ 'μ΄λΆ νμ', '맀κ°λ³μ νμ'μ΄λλΌ. κ±°κΈ°μλΆν° μ΄ν΄νμ§ λͺ»νκΈ° λλ¬Έμ,, 곡λΆνλ€λ λ§μΈλλ‘ λ¬Έμ λ₯Ό λ°λΌλ΄€λ€.
μ΄λ° 건 μ§μ§ νμμ μ νμ μκ³ μμ΄μΌ μ΄λ»κ² νμ΄μΌ ν μ§κ° λ°λ‘λ°λ‘ λ μ€λ₯Ό λ―
μΌλ¨ ꡬν΄μΌ νλ κ°λΆν° νμΈν΄λ³΄μ.
β TO DO: μ€μμμ΄ κ°μ§κ³ μλ Kκ°μ λμ μ λͺ¨λ κ°μ κΈΈμ΄λ‘ μλΌμ Nκ°μ λμ μ λ§λ€ λ, ν λμ μ μ΅λ κΈΈμ΄ κ΅¬νκΈ°
π©π« μ 맀κ°λ³μ νμ?
맀κ°λ³μ νμ κ°λ μ μ¬κΈ° κ°μ΄ μ μΌλ©΄ λ무 κΈμ΄ μ§μ λΆν΄μ§ κ² κ°μμ κ°λ μ λ€λ₯Έ κΈμμ μ λ κ±Έλ‘..!
μΌλ¨ 맀κ°λ³μ νμ μ νμ μλ λ κ°μ§ 쑰건μ λ§μ‘±ν΄μΌ νλ€.
1) μ΅μ μ κ°(μ΅λ λλ μ΅μ)μ μ°Ύλ λ¬Έμ μΈκ°?
2) κ²°μ λ¬Έμ (μ λλ μλμ€λ‘λ§ λ΅ν μ μλ λ¬Έμ )λ‘ λ³ν κ°λ₯νκ°?
μ΄ λ¬Έμ κ° λ§€κ°λ³μ νμ μ νμ μνλ€λ κ²μ μ 쑰건λ€μ λ§μ‘±νλ€λ λ»μ΄λκΉ μ΄λ€ λΆλΆμ΄ κ° μ‘°κ±΄μ ν΄λΉνλμ§ λ³΄λ©΄
1) μ΅μ μ κ°(μ΅λ λλ μ΅μ)μ μ°Ύλ λ¬Έμ μΈκ°? → λμ μ΄ Nκ°λ‘ μλ Έμ λ ν λμ μ μ΅λ κΈΈμ΄λ₯Ό ꡬνλ λ¬Έμ β
2) κ²°μ λ¬Έμ λ‘ λ³ν κ°λ₯νκ°? → λμ μ xxx κΈΈμ΄λ‘ μλμ λ Nκ° λμ΄? 무쑰건 λ΅μ Yes or No β
λΌλ κ²°λ‘ μ΄ λμ€κΈ° λλ¬Έμ μ΄ λ¬Έμ λ 맀κ°λ³μ νμμΌλ‘ ν μ μλ€!
π¨π« μ΄λΆ νμκ³Ό 맀κ°λ³μ νμμ κ΄κ³?
λ΄κ° μ΄ν΄ν λ°+μμ£Ό κ°λ¨νκ² λ§νλ©΄ μ΄λΆ νμ = 맀κ°λ³μ νμ λ¬Έμ λ₯Ό νκΈ° μν΄ μ°λ λ§€μ° λΉ λ₯Έ μκ³ λ¦¬μ¦μΈλ°, νΉμλ μλͺ»λ μ§μμ λλ€λ°©λ€ μ μ΄λ κ²μ΄λΌλ©΄ μΈμ λ μ§ λκΈ λ¬μμ£ΌμΈμ!
π» μ½λ
import sys
input = sys.stdin.readline
K, N = map(int, input().split())
ran = []
for _ in range(K):
ran.append(int(input()))
start, end = 1, max(ran)
while start <= end:
mid = (start+end) // 2 # κΈ°μ€μ΄ λλ κΈΈμ΄
num = 0 # λΆν λ λμ κ°μ
for item in ran:
num += (item//mid)
if num >= N:
start = mid+1
else:
end = mid-1
print(end)
μ΄λΆ νμμ μ¨μΌ νλ λ¬Έμ λ₯Ό 보면 νμ μκ³ λ¦¬μ¦ μ체λ μ΄λ ΅μ§ μμλ°, μ΄λΆ νμμΌλ‘ νμ΄μΌ νλꡬλ λΌκ³ κΉ¨λ«λ κ² λ무 μ΄λ €μ΄ κ² κ°λ€. μ λ° κ²λ λ€ λ΄κ³΅ λΆμ‘±μ μ΄μ κ² μ§ κ» κ»
'Problem Solving > BOJ & Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[BOJ] 4659λ²: λΉλ°λ²νΈ λ°μνκΈ° (0) | 2024.09.21 |
---|---|
[BOJ] 2805λ²: λ무 μλ₯΄κΈ° (0) | 2024.09.19 |
[BOJ] 7568λ²: λ©μΉ (0) | 2024.09.09 |
[BOJ] 9095λ²: 1, 2, 3 λνκΈ° (0) | 2024.09.03 |
[BOJ] 1463λ²: 1λ‘ λ§λ€κΈ° (1) | 2024.09.03 |