1주차_부족한 금액 계산하기
처음 코드
using namespace std;
long long solution(int price, int money, int count)
{
int answer;
int cost=0;
for (int i=1; i<=count; i++){
cost=cost+price*i;
}
answer=money-cost;
if(answer<0) return -answer;
else return 0;
}
위 코드로 진행한 결과 다음과 같이 4개의 테스트 케이스에 대해 실패하였다
나중 코드
using namespace std;
long long solution(int price, int money, int count)
{
long long answer;
long long cost=0;
for (int i=1; i<=count; i++){
cost=cost+price*i;
}
answer=money-cost;
if(answer<0) return -answer;
else return 0;
}
저장되는 변수의 크기를 고려해야함을 다시 한번 알게된 문제(이미 함수 return값으로 variable type을 알 수 있었다)
code refactoring
using namespace std;
long long solution(int price, int money, int count)
{
long long cost;
long long answer;
cost=(long long)price*(count+1)*count/2;
answer=money-cost;
return (answer<0) ? -answer:0 ;
}
refactoring이라고 하기에도 부끄러운 코드의 양이지만
먼저 for문을 없애서 계산의 속도를 높였고
둘째로 return 부분에서 삼항연산자를 이용해 if-else문을 간단하게 한줄로 나타내보았다.(c++ 원서에서는 오래된 programming style이라고 권하지는 않지만 연습해보았다)
Author And Source
이 문제에 관하여(1주차_부족한 금액 계산하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@albatross__3/1주차부족한-금액-계산하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)