안경잡이개발자

728x90
반응형

피보나치 수: 0 1 1 2 3 5 8 13 21 ...

 

<문제> 피보나치 수가 n 자릿수 이상이 되기 위한 가장 작은 인덱스를 구해보자. 예를 들어 n = 1이면 답은 0이다. n = 2이면 답은 7이다.

 

<답안 예시>

 

def fibonacciIndex(n):
    result = 0
    if n == 1:
        return result

    a = 0
    b = 1
    while a < (10 ** (n - 1)):
        c = a + b
        a = b
        b = c
        result += 1

    return result
728x90
반응형

728x90
반응형

  아래 그래프에는 3개의 연결 요소가 있다.

 

 

  연결 요소의 개수를 세는 코드는 다음과 같다.

 

n = 6
m = 4
# 그래프 정보 초기화
graph = [
    [1, 2],
    [0, 2],
    [0, 1],
    [4],
    [3],
    []
]
# 각 노드의 방문 여부
visited = [False] * n

# 특정 노드에서부터 연결된 모든 노드를 방문 처리
def dfs(x):
    visited[x] = True
    # 현재 노드와 인접한 노드 또한 방문 처리
    for i in graph[x]:
        if not visited[i]:
            dfs(i)

result = 0
for i in range(n):
    # 아직 방문하지 않았다면 방문
    if not visited[i]:
        dfs(i)
        result += 1
print(result)
728x90
반응형