😎 κ³΅λΆ€ν•˜λŠ” μ§•μ§•μ•ŒνŒŒμΉ΄λŠ” μ²˜μŒμ΄μ§€?

[μ•Œκ³ λ¦¬μ¦˜ μœ„ν•œ ν•œλ°œμ§ λ‘λ°œμ§πŸΎ] μž¬κ·€ μ‚¬μš© 방법 (Recursion) λ³Έλ¬Έ

πŸ‘©‍πŸ’» 컴퓨터 ꡬ쑰/Algorithm

[μ•Œκ³ λ¦¬μ¦˜ μœ„ν•œ ν•œλ°œμ§ λ‘λ°œμ§πŸΎ] μž¬κ·€ μ‚¬μš© 방법 (Recursion)

μ§•μ§•μ•ŒνŒŒμΉ΄ 2023. 6. 26. 12:56
728x90
λ°˜μ‘ν˜•

<λ³Έ λΈ”λ‘œκ·ΈλŠ” μ½”λ”©λ¬Έ codingmoon λ‹˜μ˜ 유튜브λ₯Ό μ°Έκ³ ν•΄μ„œ κ³΅λΆ€ν•˜λ©° μž‘μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€ :-)>

=> 개발자 ν•„μˆ˜ μ•Œκ³ λ¦¬μ¦˜ #1. μž¬κ·€ μ‚¬μš© λ°©λ²• (Recursion)

 

🫧 μž¬κ·€ μ‚¬μš© λ°©λ²• (Recursion)

: 자기 μžμ‹ μ„ ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜

 

🐾 10μ—μ„œ countDown ν•˜κΈ°

: 순회 ν•  λ•Œλ§ˆλ‹€ -1 ν•˜κΈ°

: 0보닀 μž‘μœΌλ©΄ μ€‘μ§€ν•˜κΈ° 

function cntDown(n: number): void {
	// 1. Base case (stop contidtion)
    if (n <= 0 ) {
    	return;
    }
    
    // 2. Resursive case
    console.log(n)
    cntDown(--n)
cntDown(10)

 

🐾 λ¬Έμžμ—΄ 길이 κ΅¬ν•˜κΈ°

function getLength(s: string): number {
	// 1. Base case (stop contidtion)
    if (s === "") {
    	return 0;
    }
    
    // 2. Resursive case
    return 1 + getLength(s.substring(1))    // ν•¨μˆ˜κ°€ ν•œλ²ˆ 호좜될 λ•Œλ§ˆλ‹€, λ¬Έμžμ—΄ sμ—μ„œ μ•žκΈ€μž ν•˜λ‚˜ λΉΌκΈ°
}

 

🐾 νŒ©ν† λ¦΄μ–Ό

function factorial(n: number): number {
	if (n === 0 || n ===1) {
    	return 1;
    }
    
    for (let i = n - 1; i >= 1; i--) {
    	n = n * i;
    }
    return n;
}
// μž¬κ·€ν•¨μˆ˜

function factorial(n: number): number {
    // 1. Base case (stop contidtion)
    if (n === 0 || n ===1) {
    	return 1;
    }
    
    // 2. Resursive case
    return n * factorial(--n)
}
728x90
λ°˜μ‘ν˜•
Comments