2018. 1. 15. 22:33, 알고리즘/BOJ
https://www.acmicpc.net/problem/1072
우선 주어진 X, Y에 대해 Z를 계산하고, 정답을 k라고 했을 때 100(Y+k)/(X+k) >= Z+1 이라는 식으로부터 k >= (XZ+X-100Y) / (99-Z) 라는 식을 얻을 수 있습니다. Z가 99 이상이면 자명하게 자연수 k가 존재하지 않습니다.
이제 저 식을 계산해 k를 구하기만 하면 되는데 double 자료형은 오차가 발생할 수 있기 때문에 사용하면 안됩니다. (XZ+X-100Y) / (99-Z)을 계산해서 k를 대략적으로 짐작한 뒤, 실제로 그 k 값이 올바른지 k*(99-Z)와 XZ+X-100Y를 비교해서 알아내야합니다. 만약 올바르지 않다면 1 증가시키면 됩니다.
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 9521번: PALETA (0) | 2018.01.17 |
---|---|
[BOJ] 2621번: 카드게임 (0) | 2018.01.16 |
[BOJ] 11559번: Puyo Puyo (0) | 2018.01.16 |
[BOJ] 2217번: 로프 (0) | 2018.01.15 |
[BOJ] 2206번: 벽 부수고 이동하기 (5) | 2018.01.15 |
[BOJ] 14888번: 연산자 끼워넣기 (0) | 2018.01.15 |
Comments