본문 바로가기
코딩테스트

[백준] 1072 게임 - python

by CuckooBird 2023. 2. 2.

백준 실버3 1072 게임 python

https://www.acmicpc.net/problem/1072

 

1072번: 게임

김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시

www.acmicpc.net


코드

맞았습니다가 뜬 코드입니다. - 메모리 31256KB | 시간 44ms | 코드 길이 379

import sys
X, Y = map(int, sys.stdin.readline().rstrip().split())
Z = Y * 100 // X
if Z >= 99:
    print(-1)
else:
    ans = 0
    start = 1
    end = X
    while start <= end:
        mid = (start + end) // 2
        tempZ = (Y+mid) * 100 // (X+mid)
        if tempZ <= Z:
            start = mid + 1
        else:
            ans = mid
            end = mid - 1
    print(ans)
  • 이분탐색을 이용하여 횟수를 구합니다.

Try 1. 

시간 초과가 뜬 코드입니다. - 코드 길이 244B

import sys
X, Y = map(int, sys.stdin.readline().rstrip().split())
Z = Y * 100 // X
cnt = 1
while 1:
    if X == Y:
        print(-1)
        break
    if (Y+cnt) * 100 // (X+cnt) > Z:
        print(cnt)
        break
    else:
        cnt += 1

Search 🔍

  • 구글링해서 찾은 코드를 참고했습니다.
    - 어느부분에서 이분탐색을 이용해야하는지