백준/이분탐색

[백준 1072번 / C++] 게임

배발자 2022. 1. 26.
반응형
  1. " 1 ~ INT_MAX " 범위에서의 이분탐색을 통해 result 값을 갱신. 
  2. result 값과 Z값을 비교한 결과 result값이 크다면 high 위치를 mid-1 로 변경, 반대일 경우 low 위치를 mid+1로 변경.
  3. answer값이 0 그대로라면 0출력, answer값에 변화가 있었다면 answer값 출력. 

 

#include <iostream>
#include <climits>
using namespace std;
typedef long long ll; 
ll x, y, z;
bool check(int mid) {
    ll X = mid + x; 
    ll Y = mid + y; 
    ll result = Y*100/X;
    if (result > z)return true;
    else return false; 
}
int main() {   
    cin >> x >> y; 
    z = y * 100/x; 
    ll l = 0; 
    ll h = INT_MAX; 
    ll answer = 0; 
    while (l <= h) {
        ll mid = (l + h) / 2; 
        if (check(mid)) {
            h = mid - 1;
            answer = mid;      
        }
        else  l = mid + 1;
    }
    if (!answer)cout << -1; 
    else  cout << answer; 
}
 

1072번: 게임

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

www.acmicpc.net

반응형

댓글