* 기울기
동생은 엑스 형은 와이 다.
와이는 엑스 보다 용돈을 매 달 일정한 배수 만큼의 용돈을 더 받는다.
3 배 더 받는경우
- 엑스가 300 원 받으면 와이는 900 원
- 엑스가 400 원 받는 달은 와이는 1200 원
그런데 와이가 용돈이 적다고 불만이 많아 받은 금액에서 일정한 액수의 돈을 더 주기로 했다.
100 원 더 준다면
위 예에서는 1000 원 , 1300 원을 받게 된다.
엑스는 와이가 자기보다 용돈을 몇 배 더 받는지가 궁금했지만 형은 가르쳐 주지 않아 이렇게 질문을 했다.
엑스 "그러면 형님아 지난 달에 얼마를 , 이 번달에 얼마를 받았는지만 가르쳐 주"
와이 " 가르쳐 줄테니 몇 배 더 받는지는 알려고 하지마!!!"
엑스는 다음의 아이디어로 몇 배를 더 받는지를 알고자 한다.
"비가 같은 것 끼리 빼고 , 더하면 비가 같다 . 그런데 이 경우 빼 버리면 얹어 주는 돈이 없어지니 원하는 결과를 얻을 수 있다"
입력
동생과 형의 받는 용돈 두 번의 금액이 입력으로 주어진다.
출력
몇 배가 되는지를 출력한다. 정수배가 된다는 것은 보장된다.
입출력 예
사실 문제 이름이 왜 기울기 인지는 모르겠지만 비례식을 이용해야하는 문제!
비례식의 법칙 x1 : y1 = x2 : y2 를 이용하면 된다.
근데 x1(동생) 보다 y1(형) 이 항상 몇배씩 증가하는 경우만 있는 것이 아니라
배수로 증가 된 후 일정 금액을 더해주는 경우가 있기 때문에
그 금액만큼을 빼주어야 비례식이 성립하게된다.
추가된 금액을 x 라고 두면,
x1 : (y1-x) = x2 : (y2-x) 가 성립되고
x1 * (y2-x) = x2 * (y1-x) 의 식을 도출할 수 있게 된다.
결국, x = ((x1*y2)-(x2*y1)) / (x1-x2) 의 값을 가지게 된다.
그런데!!...아무리 생각해도 맞는 풀이인데 숫자가 큰경우에 답이 나오지 않아 정말로 몇시간을 고민했는지 모른다...
이유는 큰수들끼리 곱했을 경우 int형의 범위를 벗어나기 때문이었다.
그래서 x1 과 y2 를 계산하기전에 x1 을 int 형으로 미리 변환시켜 준 후 자동 형변환 되어 계산되도록 하였다!
문제 해결