week01-quiz

그로밋·2023년 10월 17일
0

krafton jungle

목록 보기
4/58

2.

재귀함수의장점은코드가더깔끔하고이해하기쉬울수있다는것입니다.또한,반복문을
사용하지않고복잡한문제를해결할수있습니다.그러나단점도있습니다.재귀함수는함수호출
시메모리가추가적으로사용돼메모리소비가많으며,잘못사용하면스택오버플로우를일으킬
수있습니다.또한,반복문에비해빈번한메모리할당/해제로실행속도가느릴수있습니다.

3.

a) for 루프 사용:

def fibonacci_loop(n):
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
    fib_seq = [0, 1]
    for i in range(2, n):
        fib_seq.append(fib_seq[i-1] + fib_seq[i-2])
    return fib_seq

b) 재귀사용:

def fibonacci_pure_recursive(n):
    if n <= 1:
        return n
    else:
        return fibonacci_pure_recursive(n-1) + fibonacci_pure_recursive(n-2)
def fibonacci_sequence_pure_recursive(n):
    return [fibonacci_pure_recursive(i) for i in range(n)]

4.

해시 충돌은 두 개 이상의 아이템이 동일한 저장공간에 지정되는 현상입니다. 이는 해시 함수의 특성상 제한된 크기의 해시 테이블에 무한한 수의 가능한 키들을 매핑해야 하기 때문에 발생합니다. 즉, 다양한 키들이 동일한 해시 값을 가질 수 있기 때문에 충돌이 발생합니다.
체이닝은 각 버킷에 연결 리스트를 사용하여 여러 키-값 쌍을 저장하는 방법입니다.
● 체이닝장점:해시테이블의크기에영향을받지않고,일정한성능을유지할수있다.
● 체이닝 단점: 연결 리스트를 위한 추가 메모리가 필요하다. 연결 리스트가 길어지면, 해시
테이블의값을찾는데시간이많이소요될수있다.

profile
Work as though your strength were limitless. <S. Bernhardt>

0개의 댓글