✏️데이터 취업 스쿨 스터디 노트(알고리즘 ①)

Cheon Bumin·2023년 12월 6일

Study Note✏️

목록 보기
5/17

자료구조

  • 선형검색
  • 이진검색

오늘 공부 요약짤...🥲

📌공부 내용

알고리즘

  • 문제를 해결하기 위한 절차

선형검색

  • 앞에서부터 하나씩 스캔해가며 내가 원하는 값이 있는지 확인
  • 보초법 : 찾는 값을 리스트 마지막에 추가하여 찾는 과정을 간략화
    • 반복문 전에 리스트.append(찾는 값) 코드를 작성하여 리스트에 수집

이진검색

  • 데이터가 정렬화 되어 있다는 것이 전제조건
  • 정렬되어 있지 않으면 정렬을 하고 검색해야 함
  • 4가지 변수(첫 아이템 인덱스, 마지막 인덱스, 중간 인덱스, 중간 아이템) 선언

📑파이썬 코드 살펴보기

이진검색

nums = [4, 10, 22, 5, 0, 17, 7, 11, 9, 61, 88]

nums.sort()

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

userEnter = int(input('찾는 숫자 입력 : '))
searchResultIdx = -1

staIdx = 0
endIdx = len(nums) -1
midIdx = (staIdx + endIdx) //2
midVal = nums[midIdx]

while userEnter <= nums[len(nums)-1] and userEnter >= nums[0] :

    if userEnter > midVal :
        staIdx = midIdx
        midIdx = (staIdx + endIdx) // 2
        midVal = nums[midIdx]
        print(f'midIdx : {midIdx}')
        print(f'midVal : {midVal}')

    elif userEnter < midVal :
        endIdx = midIdx
        midIdx = (staIdx + endIdx) // 2
        midVal = nums[midIdx]
        print(f'midIdx : {midIdx}')
        print(f'midVal : {midVal}')

    elif userEnter == midVal :
        searchResultIdx = midIdx
        break


print(f'searchResultIdx : {searchResultIdx}')
⭐
- searchResultIdx = -1 : 없는 인덱스 값으로 세팅
- 찾는 값이 데이터 범위 밖에 있으면 안되기에 위와 같이 while 조건식 입력

하루 공부를 마치며🔥

  • 오늘 학습 시간 : 2시간 10분
  • 감기 후폭풍으로 진도를 많이 못나감
  • 내일은 파이썬 시험을 위한 복습으로 파이썬 기초와 중급 실습 문제 복습 예정
  • 열심히 말고 그냥 하자!!
profile
포기만 하지 말자

0개의 댓글