◼︎ 7-2 프로그램 7-1의 계산 복잡도
O(n)입니다. 연습 문제 7-1 프로그램은 찾는 값이 탐색 중간에 나오더라도 탐색을 멈추지 않고 혹시 더 있을 자료 값을 찾기 위해 끝까지 탐색을 해야 합니다. 따라서 어떤 경우에도 비교가 n번 필요합니다.
◼︎ 7-3 학생 번호에 해당하는 학생 이름 찾기
◉ 예제 소스 e07-3-getname.py
# 학생 번호에 해당하는 학생 이름 찾기
# 입력: 학생 번호 리스트 s_no, 학생 이름 리스트 s_name, 찾는 학생 번호 find_no
# 출력: 해당하는 학생 이름, 해당하는 학생 이름이 없으면 물음표 "?"
def get_name(s_no, s_name, find_no):
n = len(s_no) # 입력 크기 n
for i in range(0, n):
if find_no = = s_no[i]: # 학생 번호가 찾는 학생 번호와 같으면
return s_name[i] # 해당하는 학생 이름을 결과로 반환
return "?" # 자료를 다 뒤져서 못 찾았으면 물음표 반환
sample_no = [39, 14, 67, 105]
sample_name = ["Justin", "John", "Mike", "Summer"]
print(get_name(sample_no, sample_name, 105))
print(get_name(sample_no, sample_name, 777))
◉ 실행 결과
Summer
?