본문 바로가기

제로베이스

(17)
4. 삽입정렬 삽입 정렬이란? 정렬 범위를 1칸씩 확장해나가면서 새롭게 정렬 범위에 들어온 값을 기존 값들과 비교하여 알맞은 자리에 꼽아주는 알고리즘. 1부터 5까지 총 5개의 숫자가 들어있는 배열에 있다고 가정하자. [2, 1, 5, 4, 3] 맨 처음에는 첫번 째 2개의 값만 정렬 범위에 포함시키고 생각한다. 앞에 있는 값 2는 뒤에 있는 값 1보다 작기 때문에 서로 자리를 바꿔준다. [2, 1] : 2 > 1 => swap [1, 2] * * 그 다음에는 기존의 정렬 범위에 한칸 확장하여 세번 째 값을 추가시키고 생각해본다. 기존 정렬 범위에서 가장 큰 값인 2와 새롭게 추가된 5를 비교하면 자리를 바꿀 필요가 없다는 것을 알 수 있다. 기존에 정렬 범위에 있던 두 개의 값은 이 전 패스에서 이미 정렬되어 있기 ..
3. 버블정렬 버블정렬이란? 처음부터 끝까지 인접하는 인덱스의 값을 순차적으로 비교하면서 큰 숫자를 가장 끝으로 옮기는 알고리즘이다. nums = [10,2,7,21,0] length = len(nums) - 1 for i in range(length): for j in range(length - i): if nums[j] > nums[j+1]: # 만약 앞에 있는게 뒤에 있는 것보다 크면 ## 일반적인 순서 변경 방법 temp = nums[j] nums[j] = nums[j+1] nums[j+1] = temp # 파이썬에서 제공되는 방법 nums[j], nums[j+1] = nums[j+1], nums[j]
2. 이진검색 이진검색이란? 정렬되어 있는 자료구조에서 중앙값과의 크고 작음을 이용해서 데이터를 검색한다. datas = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] print(f"datas: {datas}") print(f"datas length: {len(datas)}") searchData = int(input("찾으려는 숫자 입력: ")) searchResultIdx = -1 startIdx = 0 endIdx = len(datas) - 1 midIdx = (startIdx + endIdx) // 2 midVal = datas[midIdx] while searchData = datas[0]: if searchData > midVal: startIdx = midIdx midIdx = (star..
1. 선형검색 선형검색이란? 선형으로 나열되어 있는 데이터를 순차적으로 스캔하면서 원하는 값을 찾는 것. 인덱스 0부터 9까지 순차적으로 검색한다. 보초법 마지막 인덱스에 찾으려는 값을 추가해서 찾는 과정을 간략화한다. 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 break n..
3주차 데이터 엔지니어 데이터 엔지니어는 앱 또는 웹에서 발생하는 데이터들을 파이프라인을 통해 저장소(Database, S3,...)에 저장합니다. 대용량 데이터를 수집하고 관리하며 유지하는 일을 담당합니다. 주요 업무 여러 서버 클러스터로 빅데이터를 처리 클러스터 관리, 분산 컴퓨팅, 리소스 관리, Load Balancing 관련 문제 해결 ETL(Extract - Transform - Load) DW(Data Warehouse) 구축 BI(Business Intelligence) 구축 Hadoop, Spark, Kafka 등을 사용해 업무 채용 공고에 자주 나오는 자격 요건 리눅스, 쉘 스크립트 데이터 수집 및 가공 Hadoop Spark SQL DW 시스템 설계 및 운영 ETL 파이프라인 개발 BI Too..
2. list for 문을 이용한 리스트 조회 - for문을 이용하면 리스트의 아이템을 자동으로 참조할 수 있다. - 리스트 내부에 또 다른 리스트의 아이템을 조회할 수도 있다. while 문을 이용한 조회 enumerate() 함수를 이용한 조회
1. 자료구조란 ? 자료구조란? 여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라고 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 한다.
10. 예외 처리 Exception Expception은 예외 담당 클래스이다. num1 = int(input("Input number1: ")) num2 = int(input("Input number2: ")) try: print(f"num1 / num2 = {num1 / num2}") except Exception as e: print(f"exception: {e}") print(f"num1 * num2 = {num1 * num2}") print(f"num1 - num2 = {num1 - num2}") print(f"num1 + num2 = {num1 + num2}") raise raise 키워드를 이용하면 예외를 발생시킬 수 있다.이 때, 에러 문구는 본인이 정할 수 있다. def divCalculator(n1, n..