Code Signal -Arcade
코드시그널
아케이드 문제 관련 풀이들을 구글링하면서 찾아가는 일지를 하나씩하나씩 기록하고자 합니당.
주로 자바 위주로 풀이를 올릴예정이고, 추가로 공부하고 있는 파이썬이나 코틀린, GO, 자바스크립트 더 나아가 스위프트까지...
되는대로 가능한대로 구글링하고 정답맞추면 바로 패스!!
이런식으로 좋은 코드이든 말든 짜집기한 결과물들을 개인적 소장을 위해 기록합니다. ^^
참고 사이트들은 아래에 링크로 남겨둘터이니 자세하고 더욱 깊은 내용들은 링크로 들어가보세요!
Deposit Profit
예금의 수익
어느정도의 돈이 은행에 있습니다. 매년 일정한 이자율로 예금은 이자가 붙는데요.
만약 이게 더이상 상승이 안된다고 햇을때, 얼마나 오래 투자해야하는지 그 임계치에 해당하는 연수를 구하세요.
그냥 간단히 목표가가 있고, 현재에서 미래가치까지 걸리는 시간을 구하면되는 겁니다.
int depositProfit(int deposit, int rate, int target) {
double realRate = (double)rate/100+1;
double howMuch = (double)target/deposit;
double yearDetail = howMany(howMuch,realRate);
System.out.println(Math.ceil(yearDetail));
int resultYear = (int)Math.ceil(yearDetail);
return resultYear;
}
static double howMany (double x, double base){
return Math.log10(x) / Math.log10(base);
}
간단하게 이 공식을 적용하면됩니다.
여기서 n 구하면 됩니다.
그런데 입력값들이 이러한 형태이기 때문에 좀 수정을 해줄 필요가 있었습니다.
이렇게 말이죠.
double realRate = (double)rate/100+1;
double howMuch = (double)target/deposit;
double yearDetail = howMany(howMuch,realRate);
다시 double 형태로 이자율을 1+이자/100 을 해주고, 나머지는 deposit 에서 목표가를 나눈값을 비율로 정해둡니다.
그리고
method를 하나 생성하여 계산식을 적용합니다.
Math .log 함수를 사용하는데요.
위의 현재가 미래가 공식을 n으로 풀면 필요합니다.
math class 의 메서드들은 아래 링크에 참고
아무튼 잘 정리된 메서드들을 잘 사용하면
결과값이 잘 나옵니다. 끄읕
공감 버튼♥ 눌러주시면 더욱 많은 포스팅을 올리는데 힘이 됩니다!
부탁드려요 돈드는거 아니잖아요~
'Algorithm > Java' 카테고리의 다른 글
#32_Code Signal Arcade >> Absolute Values Sum Minimization (0) | 2020.01.12 |
---|---|
#30_Code Signal Arcade >> Circle Of Numbers (0) | 2019.12.05 |
#29_Code Signal Arcade >> Chess Board Cell Color (0) | 2019.12.04 |