>⛹️♀️ 제로베이스 데이터취업스쿨 15기 스터디노트 15(5.23.)
🗂️ 오늘(5.23.) 수강한 분량
알고리즘 문제풀이 1~4
🗂️ 알고리즘 문제풀이 1~4 ; 한번 더 생각해볼것 & 개념 부족한 것 정리
- 선형검색 알고리즘 : 모듈 이용하여 해당 값 도출
선형으로 순차적 스캔 진행하여 원하는 값 나타내기
기본파일 if __name__ == '__main__' : #현재 스크립트 파일이 프로그램의 시작점이 맞는지 확인하는 것/ #이후에는 직접 실행되길 원하는 코드 넣어주는 것 모듈 def searchNumberByLineAgorith(ns,sn) searchResultIdx = -1 print(f'Numbers : {ns}') #찾는 숫자 print(f'SearchNumbers : {sn}') #원하는 숫자
- 이진검색 알고리즘 : 모듈 이용하여 해당 값 도출
정렬구조에서 중앙값과의 비교를 통한 데이터 검색
모듈 def searchNumberByLineAgorith(ns,sn) searchResultIdx = -1 staIdx = 0 endIdx = len(ns) -1 midIdx = (staIdx + endIdx) // 2 midVal - ns[midIdx] ~~~~ elif sn == midVal: #답을 찾은 경우/ 이진검색이니까 중간값 searchResultIdx = midIdx
- 순위 알고리즘 : 순위에 따라 아이템 정렬 / 모듈 사용
enumerate() : 자료형을 입력받았을 때 인덱스와 값을 포함하여 리턴
모듈 def rankAlgorithm(ns): ranks = [0 for i in range(len(ns))] #0으로 초기화 for idx, n1 in enumerate(ns): for n2 in ns: #모두 비교해야해서 중첩반복 if n1 < n2: rank[idx] += 1 for i, n in enumerate(ns) # 재정렬 searchResultIdx = midIdx
- 순위 알고리즘 : 알파벳 문자와 정수들에 대한 순위를 정하기
ascIDatas = [] #변경 for data in datas: if str(data).isalpha(): #데이터를 문자열로 바꾸고/알파벳인지 확인
- 버블정렬 알고리즘 : 숫자리스트를 오름차,내림차순으로 정렬 / 모듈 사용
버블정렬 알고리즘 : 하나씩 정리해서 큰수를 제일 뒤로 미뤄냄
깊은 복사 : 객체 자체 복사, 또 다른 객체를 만듬
모듈 import copy #깊은복사 def sortByBubbleAlgorith(ns, asc = True): c_ns = copy.copy(ns) length = len(c_ns) -1
- 선택정렬 알고리즘
- 병렬정렬 알고리즘
모듈 def mSort(ns, asc=True): if len(ns) < 2: return ns #재귀알고리즘 midIdx = len(ns) // 2 leftNums = mSort(ns[0:midIdx], asc=asc) rightNums = mSort(ns[midIdx:len(ns)], asc=asc) mergedNums = [] leftIdx = 0; rightIdx = 0 while leftIdx < len(leftNums) and rightIdx < len(rightNums):
- 최댓값 알고리즘 : 최댓값, 최대값 개수찾기 / 모듈 사용
class MaxAlgorithm: def __init__(self, ns): self.nums = ns self.maxNum = 0 self.maxNumCnt = 0 def setMaxNum(self): self.maxNum = 0 for n in self.nums: if self.maxNum < n: self.maxNum = n #외부에서 최대값만 다시 뽑기 def getMaxNum(self): self.setMaxNum() return self.maxNum
- 최댓값 알고리즘 : 학급 시험점수 평균, 최댓값 / 모듈 사용
- 최소값 알고리즘 : 최소값, 최소값 개수찾기 / 모듈 사용
- 최댓값 알고리즘 : 학급 시험점수 평균, 최댓값 / 모듈 사용
class ScoreManagement: def __init__(self,ss): self.scores = ss self.scores_tot = 0 self.scores_avg = 0 self.scores_min = 0 self.scores_max = 0 def getMinScore(self): if self.scores == None or len(self.scores) == 0: #예외발생금지 return None ~~~ self.score_tot = 0 #누적값 더하기 방지 for score in self.scores: self.score_tot += score return self.score_tot
👩🚀 스터디 감정 노트
나는 일단 진도를 나간다 근데 어지럽다 문제풀이 강의 진도를 빨리 나가고 다시 복습을 해야지(현재 복습해서 이해한 상황 자료구조...인데 불안한)🤐
[이미지 출처 : 미리캔버스]