해결된 질문
작성
·
142
1
list의 시간복잡도를 설명하실 때
visited = [True, True, False, True, False, True, False]
# if visited[3] == True:
if visited[3]:
print("room number 3 visited")
이 코드에서 입력값 n에 따라 visited의 길이가 n으로 바뀌는 거면 visited 리스트를 n개의 원소로 초기화하는데에 걸리는 시간은 O(n)이므로 , if visited[3]: 이부분에서의 시간복잡도가 O(1)이여도 코드의 총 시간 복잡도는 O(n) 아닌가요 ??
답변 1
1
안녕하세요 세진님!
강의에서 말하는 O(1)의 의미는 초기화 부분을 말하는 것이 아닙니다.
list 자료구조에서 특정 인덱스로 접근할 때의 시간복잡도가 O(1)이라는 것을 뜻한 것입니다.
말씀하신대로 초기화하는 과정은 O(n)이 맞고 따라서 전체적으로는 O(n)이 맞습니다.
설명이 부족한 부분이 있으면 말씀 주세요!
감사합니다!