https://www.acmicpc.net/problem/1072
1072번: 게임
김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시
www.acmicpc.net
'''
게임 횟수 X
이긴 게임 Y
승률 Z (X % Y * 100)
게임을 몇 번 해야 승률이 1퍼 증가하는가?
☆무조건 이김!!☆
이분탐색 이용
'''
X, Y = map(int, input().split())
Z = 100*Y // X # 현재 승률 fix 해놓기
# start = 추가로 진행할 게임 횟수의 최솟값
# end = 추가로 진행할 게임 횟수의 최댓값
start, end = 0, 1000000000
ans = -1
# 이분탐색하면서 현재 승률(정확히는 현재 승률보다 1%큰 확률 = Z+1)을 찾아야 함!
while start <= end:
mid = (start + end) // 2 # 중간점 갱신
next_Z = 100*(Y + mid) // (X + mid) # 중간점 승률
if next_Z > Z: # 중간점 승률이 현재 승률보다 크면
ans = mid # ans 갱신
end = mid - 1
else: # 중간점 승률이 현재보다 크지 않으면
start = mid + 1 # 시작점을 중간점보다 크게 설정
print(ans)
1차시도 재귀로 풀려다가... 이상해서 보니까 무조건 이긴다는 조건이 있었네...
진짜 문제 잘 읽자...
'백준' 카테고리의 다른 글
백준 16139. 인간-컴퓨터 상호작용 (0) | 2024.03.06 |
---|---|
백준 15903. 카드 합체 놀이 (0) | 2024.03.05 |
백준 27737. 버섯 농장 (0) | 2024.03.05 |
백준 7562. 나이트의 이동 (0) | 2024.03.03 |
백준 1012. 유기농 배추 (0) | 2024.03.03 |