230428_제로베이스데이터스쿨_알고리즘복습

김지태·2023년 4월 29일
0
post-thumbnail

06_001 선형검색

datas = [3, 2, 5, 7, 9, 1, 0, 8, 6, 4]

print(f'datas: {datas}')
print(f'datas length: {len(datas)}')

searchData = int(input('찾으려는 숫자 입력: '))

결과적으로 몇 번째에 있는지

searchResultIdx = -1 # 일단은 존재하지 않는 인덱스

n = 0
while True:

if n == len(datas):
searchResult = -1
break # 찾고자 하는 것이 없음, while문 밖으로 나옴

데이터의 n번째 값이

elif datas[n] == searchData:
searchResultIdx = n
break

n += 1

print(f'searchResultIdx: {searchResultIdx}')

보초법 / 찾고자하는 값을 맨 뒤에 배치한다음 찾은 결과가 맨 뒤라고 뜨면 못찾은거나 다름이 없다. 내가 추가를 해서 찾은거니까. 마지막 이전에 검색된 경우는 찾은거임

datas = [3, 2, 5, 7, 9, 1, 0, 8, 6, 4]

print(f'datas: {datas}')
print(f'datas length: {len(datas)}')

searchData = int(input('찾으려는 숫자 입력: '))

searchResultIdx = -1 # 일단은 존재하지 않는 인덱스

datas.append(searchData)

n = 0
while True:

if datas[n] == searchData:
if n != len(datas) -1: # 찾고자하는 데이터가 맨 끝의 데이터가 아니라면,
searchResultIdx = n # 찾으려는 데이터가 존재하고, 그 데이터의 자리수는 n
break

n += 1

print(f'searchResultIdx: {searchResultIdx}')

06_002 선형검색 실습

nums = [4, 7, 10, 2, 4, 7, 0, 2, 7, 3, 9]

print(f'nums: {nums}')
print(f'nums length: {len(nums)}')

searchData = int(input('input search number: '))
searchResultIdx = -1

nums.append(searchData)

n = 0
while True:

if nums[n] == searchData:
if n != len(datas) -1:
searchResultIdx = n
break

n += 1

print(f'nums: {nums}')
print(f'nums length: {len(nums)}')
print(f'searchResultIdx: {searchResultIdx}')

if searchResultIdx < 0:
print('not search index')
else:
print(f'search index: {searchResultIdx}')

nums = [4, 7, 10, 2, 4, 7, 0, 2, 7, 3, 9]

print(f'nums: {nums}')
print(f'nums length: {len(nums)}')

searchData = int(input('input search number: '))
searchResultIdxs = []

nums.append(searchData)

n = 0
while True:

if nums[n] == searchData:
if n != len(nums) - 1:
searchResultIdxs.append(n)
else:
break

n += 1

print(f'nums: {nums}')
print(f'nums length: {len(nums)}')
print(f'searchResultIdxs: {searchResultIdxs}')
print(f'searchResultIdxs length: {len(searchResultIdxs)}')

알고리즘이 많이 어렵다. 복습 또 복습.

profile
데이터 분석가

0개의 댓글