320x100
# 선형검색
# 숫자로 이루어진 릿그트에서 사용자가 입력한 숫자를 검색하는 모듈을 다음 요건에 따라 만들자
# 1. 검색 모듈은 선형 검색 알고리즘을 이용하자
# 2. 리스트는 1부터 20까지의 정수 중에서 난수 10개를 이용하자
# 3. 검색 과정을 로그로 출력하자.
# 4. 검색에 성공하면 해당 정수의 인덱스를 출력하고, 검색 결과가 없다면 -1을 출력하자
# 내가 만든코드
import random as rd
list_main = rd.sample(range(1,20),10)
searching_number = int(input('찾으려는 숫자 입력: '))
print(list_main)
for a,b in enumerate(list_main):
if searching_number == b:
print(f'Search Number: {b}')
print('Search SUCCESS!!')
print(f'Search result INDEX: {a}')
print('>>> Search Results <<<')
print(f'Search result index: {a}')
print(f'Search result Number: {b}')
break
else:
print('-1')
print(f'Search Number: {b}')
print('Search Fail try again!!')
# 결과적으로야 맞다만 이게 선형검색 알고리즘은 뭔가 아닌것같다 본능적으로.
해답코드
첫번째 파일
lineMod
# 매게변수. 외부에서 받을 숫자가 ns, 내가 찾으려는 숫자가 sn
def searchNumberByLineAlgorithm(ns, sn):
searchResultIdx = -1
print(f'Numbers: {ns}')
print(f'Search Numbers: {sn}')
n = 0
while True:
# 검색길이와 똑같다. 즉, 끝까지 찾았는데도 없다.
if n == len(ns):
print('Search Fail!!')
break
if ns[n] == sn:
searchResultIdx = n
print('search success!')
print(f'search result index: {searchResultIdx}')
break
n += 1
return searchResultIdx
두번째 파일
ex
# 해답코드
import lineMod
import random
# 이걸 왜써주는지 모르겠다.
if __name__ == '__main__':
rNums = random.sample(range(1,21),10)
searchNum = int(input('input search number: '))
resultIdx = lineMod.searchNumberByLineAlgorithm(rNums, searchNum)
if resultIdx == -1:
print('No results found')
print(f'search result index: {resultIdx}')
else:
print('>>> search results <<<')
print(f'search result index: {resultIdx}')
print(f'search result number: {rNums[resultIdx]}')
300x250
'개발일지 > Python' 카테고리의 다른 글
파이썬 [class 기초원리] - 정리판1 class(클래스)기본 (0) | 2022.05.20 |
---|---|
파이썬 패키지 기초 원리, site-packages (0) | 2022.05.19 |
Day2. 챕터3 그리디 - 큰 수의 법칙 (0) | 2022.05.18 |
Day2, 챕터3 그리디 일부. 거스름돈 알고리즘 (0) | 2022.05.18 |
Day1 Part 01의 chapter 01, 02 후기 (0) | 2022.05.16 |