대기업(26)
-
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 24회차 미션
merge 함수 만들기 * 목표: left 와 right 의 리스트 데이터를 정렬해서 sorted_list 라는 이름으로 return 하기 * left와 right는 이미 정렬된 상태 또는 데이터가 하나임 프로그래밍 연습 1. left 부터 하나씩 right과 비교 2. left > right 이면, left 를 sorted_list에 넣고, 다음 left 리스트와 right 비교 - 그렇지않으면 반대로 하기 다음 경우만 프로그래밍으로 작성해보기 left = [0] right = [3] 결과는 별도의 리스트 변수를 만들어 적은 숫자 순으로 순서대로 저장해서 리턴 프로그래밍 연습 다음 경우만 프로그래밍으로 작성해보기 left = [0, 2] right = [1] 결과는 별도의 리스트 변수를 만들어 적은 숫..
2020.11.11 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 23회차 미션
대표적인 정렬4: 병합 정렬 (merge sort) 1. 병합 정렬 (merge sort) - 재귀용법을 활용한 정렬 알고리즘 1. 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 2. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 3. 두 부분 리스트를 다시 하나의 정렬된 리스트로 합병한다. 2. 알고리즘 이해 데이터가 네 개 일때 (데이터 갯수에 따라 복잡도가 떨어지는 것은 아니므로, 네 개로 바로 로직을 이해해보자.) - 예: data_list = [1, 9, 3, 2] - 먼저 [1, 9], [3, 2] 로 나누고 - 다시 앞 부분은 [1], [9] 로 나누고 - 다시 정렬해서 합친다. [1, 9] - 다음 [3, 2] 는 [3], [2] 로 나누고 - 다시 정렬해서 ..
2020.11.10 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 22회차 미션
대표적인 정렬5: 퀵 정렬 (quick sort) 1. 퀵 정렬 (quick sort) 이란? 정렬 알고리즘의 꽃 기준점(pivot 이라고 부름)을 정해서, 기준점보다 작은 데이터는 왼쪽(left), 큰 데이터는 오른쪽(right) 으로 모으는 함수를 작성함 각 왼쪽(left), 오른쪽(right)은 재귀용법을 사용해서 다시 동일 함수를 호출하여 위 작업을 반복함 함수는 왼쪽(left) + 기준점(pivot) + 오른쪽(right) 을 리턴함 2. 어떻게 코드로 만들까? 퀵소트 알고리즘에 대해서는 위에서 언급이 되었으므로, 이를 구현하기 위한 세부 코드에 대해 연습을 통해 이해합니다. 프로그래밍 연습 다음 리스트를 리스트 슬라이싱(예 [:2])을 이용해서 세 개로 짤라서 각 리스트 변수에 넣고 출력해보기..
2020.11.09 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 17회차 미션
대표적인 정렬1: 버블 정렬 A. 알고리즘 연습 방법 - 알고리즘을 잘 작성하기 위해서는 잘 작성된 알고리즘을 이해하고, 스스로 만들어봐야 함 - 모사! 그림을 잘 그리기 위해서는 잘 그린 그림을 모방하는 것부터 시작 - 이번 챕터부터 알고리즘 시작입니다.! - 알고리즘 연습 방법 1. 연습장과 펜을 준비하자. 2. 알고리즘 문제를 읽고 분석한 후에, 3. 간단하게 테스트용으로 매우 간단한 경우부터 복잡한 경우 순서대로 생각해보면서, 연습장과 펜을 이용하여 알고리즘을 생각해본다 4. 가능한 알고리즘이 보인다면, 구현할 알고리즘을 세부 항목으로 나누고, 문장으로 세부 항목을 나누어서 적어본다. 5. 코드화하기 위해, 데이터 구조 또는 사용할 변수를 정리하고, 6. 각 문장을 코드 레벨로 적는다 7. 데이터..
2020.11.04 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 16회차 미션
4. 힙 구현 힙과 배열 -> 일반적으로 힙 구현 시 배열 자료구조를 활용 -> 배열은 인덱스가 0번부터 시작하지만 힙 구현의 편의를 위해 root 노드 인덱스 번호를 1로 지정하면 구현이 좀 더 수월함 - 부모 노드 인덱스 번호 = 자식 노드 인덱스 번호 //2 - 왼쪽 자식 노드 인덱스 번호 = 부모 노드 인덱스 번호 *2 - 오른쪽 자식 노드 인덱스 번호 = 부모 인덱스 번호 * 2 +1 #예1 – 10 노드의 부모 노드 인덱스 2//2 #예1 -15 노드의 왼쪽 자식 노드 인덱스 번호 1*2 #예1 – 15 노드의 오른쪽 자식 노드 인덱스 번호 2*2+1 힙에 데이터 삽입 구현 (Mas Heap 예) 힙 클래스 구현1 class Heap: def __init__(self, data): self.h..
2020.11.03 -
[패스트캠퍼스 수강 후기] {코딩테스트인강} 100% 환급 챌린지 13회차 미션
5.5 이진 탐색 트리 삭제 코드 구현과 분석 5.5.1 삭제할 Node 탐색 삭제할 Node가 없는 경우도 처리해야함 - 이를 위해 삭제할 Node가 없는 경우는 False를 리턴하고 함수를 종료 시킴 #def delete(self, value): searched = False self.current_mode = self.head self.parent =self.head while self.current_node: if self.current_node.value == value: searched = True break elif value < self.current_node.value: self.parent = self.current_node self.current_node = self.current_n..
2020.10.31