๐ฅ Silver2
https://www.acmicpc.net/problem/1072


โ 1์ฐจ์๋
import sys
input=sys.stdin.readline
n,m=map(int,input().strip().split())
if n==m:
print(-1)
else:
z=int(m/n*100) # ์น๋ฅ Z
start=1
end=n
result=0
while start<=end:
mid=(start+end)//2
new_z=int((m+mid)/(n+mid)*100)
if z+1<=new_z: #์ค๋ฅธ์ชฝ ํ์
result=mid
end=mid-1
else:
start=mid+1
print(result)
์ค๋ต์ ์์ธ์ ์๋ชป ์ ์ํ ์น๋ฅ ๊ณผ ์ ๋ ๋ณํ์ง ์๋ ์น๋ฅ ์ผ๋ -1์ ์ถ๋ ฅํ๋ ์กฐ๊ฑด๋ฌธ์ด์๋ค.
์ ๋ ์น๋ฅ ์ด ๋ณํ์ง ์๋ ๊ฒฝ์ฐ๋ 100%์ด๊ธฐ ๋๋ฌธ์ ๊ฒ์ํ์์ ์ด๊ธด๊ฒ์์ด ๊ฐ์๋๋ผ๋ ์กฐ๊ฑด์ผ๋ก ์์ฑํ์๋ค.
โ๏ธ ๊ทผ๋ฐ ๊ฐ๊ณผํ์ ์ด ์๋ค.
์น๋ฅ 99% ๋ํ 100%๋ฅผ ๋ง๋ค ์ ์๋ค.
99.999%๋ผ๊ณ ํ๋๋ผ๋ ๋จ ํ๋ฒ์ด๋ผ๋ ๊ฒ์์ ์ด๋ฏธ ์ก๊ธฐ ๋๋ฌธ์ ์ ๋ 100%๋ฅผ ๋ง๋ค์ ์์ด ์น๋ฅ ์ด ๋ณํ ์๊ฐ ์๋ค.
end์ ๊ฐ์ ๋ฒ์๋ฅผ ์ด๋ป๊ฒ ์ง์ ํด์ผํ ์ง ์์ง ์ด๋ถํ์์ด ์ต์์น ์์ ๋ง์ค์๋๋ฐ
1%๋ง ์น๋ฅ ์ ์ฌ๋ฆฌ๋ฉด ๋๊ธฐ ๋๋ฌธ์, ์ต๋ํ ๊ฐ๋ฅ์ฑ์ ์ด์ด๋๊ณ ์ฒ์ ์ฃผ์ด์ง ๊ฒ์ํ์๋ก ์ง์ ํ์๋ค.
โ ์ ๋ตํ์ด
import sys
input=sys.stdin.readline
n,m=map(int,input().strip().split())
z = m * 100 // n # ํ์ฌ ์น๋ฅ
if z >= 99:
print(-1)
else:
start=1
end=n
result=0
while start<=end:
mid=(start+end)//2
new_z = (m + mid) * 100 // (n + mid)
if z+1<=new_z: #์ค๋ฅธ์ชฝ ํ์
result=mid
end=mid-1
else:
start=mid+1
print(result)
โ ํจ์๋ก ๋ณ๊ฒฝ
import sys
def binary_search(n,m,z):
if z >= 99:
return -1
start = 1
end = n
result = 0
while start <= end:
mid = (start + end) // 2
new_z = (m + mid) * 100 // (n + mid)
if z + 1 <= new_z: # ์ค๋ฅธ์ชฝ ํ์
result = mid
end = mid - 1
else:
start = mid + 1
return result
def read_input():
input = sys.stdin.readline
n,m=map(int,input().strip().split())
z = m * 100 // n # ํ์ฌ ์น๋ฅ
return n,m,z
def main():
n,m,z = read_input()
result = binary_search(n,m,z)
print(result)
if __name__ == "__main__":
main()
๋ฉ๋ชจ๋ฆฌ | ์คํ์๊ฐ |
31120 | 48 |
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-Python] ๋์ดํธ์ ์ด๋ : 7562๋ฒ (0) | 2024.06.10 |
---|---|
[๋ฐฑ์ค-Python] ์ด์๊ณ์ฐ : 2644๋ฒ (0) | 2024.06.10 |
[๋ฐฑ์ค-Python] ์ขํ ์์ถ : 18870๋ฒ (0) | 2024.06.07 |
[๋ฐฑ์ค-Python] ์ฝ์ํธ : 16466๋ฒ (0) | 2024.06.07 |
[๋ฐฑ์ค-Python] ๋์ ์๋ฅด๊ธฐ : 1654๋ฒ (0) | 2024.06.07 |
๐ฅ Silver2
https://www.acmicpc.net/problem/1072


โ 1์ฐจ์๋
import sys
input=sys.stdin.readline
n,m=map(int,input().strip().split())
if n==m:
print(-1)
else:
z=int(m/n*100) # ์น๋ฅ Z
start=1
end=n
result=0
while start<=end:
mid=(start+end)//2
new_z=int((m+mid)/(n+mid)*100)
if z+1<=new_z: #์ค๋ฅธ์ชฝ ํ์
result=mid
end=mid-1
else:
start=mid+1
print(result)
์ค๋ต์ ์์ธ์ ์๋ชป ์ ์ํ ์น๋ฅ ๊ณผ ์ ๋ ๋ณํ์ง ์๋ ์น๋ฅ ์ผ๋ -1์ ์ถ๋ ฅํ๋ ์กฐ๊ฑด๋ฌธ์ด์๋ค.
์ ๋ ์น๋ฅ ์ด ๋ณํ์ง ์๋ ๊ฒฝ์ฐ๋ 100%์ด๊ธฐ ๋๋ฌธ์ ๊ฒ์ํ์์ ์ด๊ธด๊ฒ์์ด ๊ฐ์๋๋ผ๋ ์กฐ๊ฑด์ผ๋ก ์์ฑํ์๋ค.
โ๏ธ ๊ทผ๋ฐ ๊ฐ๊ณผํ์ ์ด ์๋ค.
์น๋ฅ 99% ๋ํ 100%๋ฅผ ๋ง๋ค ์ ์๋ค.
99.999%๋ผ๊ณ ํ๋๋ผ๋ ๋จ ํ๋ฒ์ด๋ผ๋ ๊ฒ์์ ์ด๋ฏธ ์ก๊ธฐ ๋๋ฌธ์ ์ ๋ 100%๋ฅผ ๋ง๋ค์ ์์ด ์น๋ฅ ์ด ๋ณํ ์๊ฐ ์๋ค.
end์ ๊ฐ์ ๋ฒ์๋ฅผ ์ด๋ป๊ฒ ์ง์ ํด์ผํ ์ง ์์ง ์ด๋ถํ์์ด ์ต์์น ์์ ๋ง์ค์๋๋ฐ
1%๋ง ์น๋ฅ ์ ์ฌ๋ฆฌ๋ฉด ๋๊ธฐ ๋๋ฌธ์, ์ต๋ํ ๊ฐ๋ฅ์ฑ์ ์ด์ด๋๊ณ ์ฒ์ ์ฃผ์ด์ง ๊ฒ์ํ์๋ก ์ง์ ํ์๋ค.
โ ์ ๋ตํ์ด
import sys
input=sys.stdin.readline
n,m=map(int,input().strip().split())
z = m * 100 // n # ํ์ฌ ์น๋ฅ
if z >= 99:
print(-1)
else:
start=1
end=n
result=0
while start<=end:
mid=(start+end)//2
new_z = (m + mid) * 100 // (n + mid)
if z+1<=new_z: #์ค๋ฅธ์ชฝ ํ์
result=mid
end=mid-1
else:
start=mid+1
print(result)
โ ํจ์๋ก ๋ณ๊ฒฝ
import sys
def binary_search(n,m,z):
if z >= 99:
return -1
start = 1
end = n
result = 0
while start <= end:
mid = (start + end) // 2
new_z = (m + mid) * 100 // (n + mid)
if z + 1 <= new_z: # ์ค๋ฅธ์ชฝ ํ์
result = mid
end = mid - 1
else:
start = mid + 1
return result
def read_input():
input = sys.stdin.readline
n,m=map(int,input().strip().split())
z = m * 100 // n # ํ์ฌ ์น๋ฅ
return n,m,z
def main():
n,m,z = read_input()
result = binary_search(n,m,z)
print(result)
if __name__ == "__main__":
main()
๋ฉ๋ชจ๋ฆฌ | ์คํ์๊ฐ |
31120 | 48 |
'๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค-Python] ๋์ดํธ์ ์ด๋ : 7562๋ฒ (0) | 2024.06.10 |
---|---|
[๋ฐฑ์ค-Python] ์ด์๊ณ์ฐ : 2644๋ฒ (0) | 2024.06.10 |
[๋ฐฑ์ค-Python] ์ขํ ์์ถ : 18870๋ฒ (0) | 2024.06.07 |
[๋ฐฑ์ค-Python] ์ฝ์ํธ : 16466๋ฒ (0) | 2024.06.07 |
[๋ฐฑ์ค-Python] ๋์ ์๋ฅด๊ธฐ : 1654๋ฒ (0) | 2024.06.07 |