-
[λ°±μ€] 1072 κ²μ with PythonPS 2023. 4. 7. 15:18728x90λ°μν
π BOJ 1072 κ²μ
π‘ 쑰건
- ννμ΄λ μ μ μ½λ©μ νλ μ¬μ΄μ μμ μ κ²μ μ€λ ₯μ΄ λμ λκ² ν₯μλ κ²μ μμλ€.
- ννμ΄λ μμΌλ‘μ λͺ¨λ κ²μμμ μ§μ§ μλλ€.
ννμ΄λ κ²μ κΈ°λ‘μ μμ ν μ μκΈ° λλ¬Έμ, μμ μ μμ κΈ°λ‘μ΄ νμ¬ μμ μ μμ²λ μ€λ ₯μ μ¦λͺ νμ§ λͺ»νλ€κ³ μκ°νλ€.
- κ²μ κΈ°λ‘μ λ€μκ³Ό κ°μ΄ μκ²Όλ€.
- κ²μ νμ : X
- μ΄κΈ΄ κ²μ : Y (Z%)
- Zλ ννμ΄μ μΉλ₯ μ΄κ³ , μμμ μ λ²λ¦°λ€. μλ₯Ό λ€μ΄, X=53, Y=47μ΄λΌλ©΄, Z=88μ΄λ€.
- Xμ Yκ° μ£Όμ΄μ‘μ λ, ννμ΄κ° κ²μμ μ΅μ λͺ λ² λ ν΄μΌ Zκ° λ³νλμ§ κ΅¬νλ λ¬Έμ
첫째 μ€μ ννμ΄κ° κ²μμ μ΅μ λͺ ν λ ν΄μΌνλμ§ μΆλ ₯νλ€. λ§μ½ Zκ° μ λ λ³νμ§ μλλ€λ©΄ -1μ μΆλ ₯νλ€.
- 1 β€ X β€ 1,000,000,000
0 β€ Y β€ X
- μν, μ΄λΆνμ μ νμ λ¬Έμ
π μμ λ° μ€νκ²°κ³Ό
μμ 1
10 8
μ€νκ²°κ³Ό 1
1
μμ 2
100 80
μ€νκ²°κ³Ό 2
6
μμ 3
47 47
μ€νκ²°κ³Ό 3
-1
μμ 4
99000 0
μ€νκ²°κ³Ό 4
1000
μμ 5
1000000000 470000000
μ€νκ²°κ³Ό 5
19230770
β¨οΈ λ¬Έμ νμ΄
κ²μμ λͺ νμ νλ©΄ μΉλ₯ μ΄ λ³ν μ§ κ΅¬νλ λ¬Έμ μ΄λ€.
Xμ λ²μλ₯Ό 보면 νλνλ κ³μ°ν΄μ μ°Ύμ μ μκ³ , μ΄λΆνμμ ν΅ν΄μ κ²°κ³Όλ₯Ό λμΆν΄μΌ νλ€λ κ²μ μ μ μλ€.
λν μΉλ₯ μ ꡬνλ €λ©΄ λΉμ°ν μμ«μ κ³μ°μ΄ νμνλ€κ³ μκ°ν μ μμ§λ§, b μ 100μ κ³±νλ©΄ κ·Έλ κ² νμ§ μμλ λλ€.
μ΄λΆνμμ μ²μ μμν λ, left μ ν΄λΉλλ λ³μλ 0μΌλ‘ μμνκ³ right μ ν΄λΉλλ λ³μλ X, Y μ€ ν° κ²μ κ³¨λΌ λ£λλ€.
π₯ μμ€ μ½λ
from sys import stdin a, b = map(int, stdin.readline().split()) z = b * 100 // a ans = int(1e11) start, end = 0, max(a, b) while start <= end: mid = (start + end) // 2 res = (b + mid) * 100 // (a + mid) if res != z: ans = min(ans, mid) end = mid - 1 else: start = mid + 1 print(ans if ans != int(1e11) else -1)
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 15792 A/B - 2 with Python (0) 2023.04.10 [λ°±μ€] 2455 μ§λ₯ν κΈ°μ°¨ with Python (0) 2023.04.10 [λ°±μ€] 9658 λ κ²μ 4 with Python (0) 2023.04.07 [λ°±μ€] 9657 λ κ²μ 3 with Python (0) 2023.04.04 [λ°±μ€] 9656 λ κ²μ2 with Python (0) 2023.04.04