[콭] 콜라문제 : 재귀

강원지·2023년 1월 31일
0

코테 다시보기

목록 보기
9/22

코딩테스트 연습
연습문제
콜라 문제

문제

콜라를 a병당 b병으로 바꿔주는 마트가 있다. 콜라 n병을 가져가면 총 몇 병을 받을 수 있는지 구하라.

javascript 코드

function solution(a, b, n) {
    
    let coke=0;
    
    return chng(a,b,n,coke);
}
function chng(a,b,n,coke){
    
    if(n<a) return coke;
    
    coke+=(Math.floor(n/a))*b;
    n=(Math.floor(n/a))*b+n%a;
    
    return chng(a,b,n,coke);
}

재귀

재귀를 아래와 같이 작성하면 결과값이 undefined가 된다.

function chng(a,b,n,coke){
    
    if(n<a) return coke;
  //basecase=재귀 전채함수의 즉각적인 종료가 아님
    
    coke+=(Math.floor(n/a))*b;
    n=(Math.floor(n/a))*b+n%a;
    
    chng(a,b,n,coke);
  
    1. 없음 //undefined
  	2. return coke;//첫번째 재귀의 coke값
 
}

재귀함수에서 모든 스택을 처리한 뒤에 return 할 값을 지정해줘야 함(주로 재귀함수 포함).

0개의 댓글