본문 바로가기

분류 전체보기

(54)
(20210204) 16th Morning Challenge Morning Challenge 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 자료구조 복습 스택 블로그 작성 Study 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 01. 자료구조 스택
(자료구조) 스택 1. 스택이란 - 가장 나중에 쌓은 데이터를 가장 먼저 빼낼 수 있는 데이터구조 (LIFO) 2. 스택의 제약 - 데이터는 스택의 끝에만 삽입가능 - 데이터는 스택의 끝에서만 읽을 수 있다. - 데이터는 스택의 끝에서만 삭제할 수 있다. 3. 스택의 활용 - 오래 사용할 데이터를 저장할 때는 일반적으로 스택을 사용하지 않지만 임시 데이터를 다뤄야 하는 알고리즘에서는 스택이 유용한 도구 - 컴퓨터 내부의 프로세스 구조의 함수 동작 방식 4. 스택 예제 - 재귀함수가 대표적인 예제이다. def recursive(data) if data < 0 puts "end" else puts data recursive(data-1) puts "returned #{data}" end end 5. 스택의 장단점 - 장점 :..
(자료구조) 큐(QUEUE) 1. 큐의 구조 - 극장에 줄 서 있는 사람들을 큐처럼 생각할 수 있다. 가장 먼저 줄 선 사람이 가장 먼저 극장에 들어가듯 큐 역시 첫 번째로 추가된 항목이 가장 먼저 제거된다. 이를 First In First Out, 즉 FIFO라 표현한다. - 컴퓨터의 운영체제나 네트워크 구조에서도 많이 쓰이는 자료구조이다. 2. 큐 루비코드 class PrintManager def initialize @queue = [] end def enqueue(data) @queue.push(data) end def dequeue while @queue.any? # 루비의 시프트 메서드는 배열의 첫 번째 원소를 삭제 후 반환 data = @queue.shift puts data end end end 3. 큐가 자주 쓰이는 ..
(20210203) 15th Morning Challenge Morning Challenge 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 자료구조 복습 Study 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 01. 자료구조 배열 큐
(20210202) 14th Morning Challenge Morning Challenge 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 알고리즘 - 최소신장트리 Study 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 02. 알고리즘 43강 최소 신장 트리의 이해2 - 프림 알고리즘 파이썬 코드1 11:40 44강 최소 신장 트리의 이해2 - 프림 알고리즘 파이썬 코드2 14:50 45강 최소 신장 트리의 이해2 - 참고. 개선된 프림 알고리즘 24:00 46강 최소 신장 트리의 이해2 - 참고. 개선된 프림 알고리즘의 시간복잡도 11:05 47강 백트래킹 - 백트래킹의 이해 08:51 48강 백트래킹 - N Queen 문제 이해 20:25 49강 백트래킹 - N Queen 문제 파이썬 코드 작성1 14:31 50강 백트래킹 - N Queen 문제 파이..
(20210201) 13th Morning Challenge Morning Challenge 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 알고리즘 - 최소신장트리 Study 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 02. 알고리즘 39강 최소 신장 트리의 이해1 - 크루스칼 알고리즘 코드 작성1 22:55 40강 최소 신장 트리의 이해1 - 크루스칼 알고리즘 코드 작성2 14:10 41강 최소 신장 트리의 이해2 - 프림 알고리즘이란 16:56 42강 최소 신장 트리의 이해2 - 프림 알고리즘 코드 작성 12:06
(20210129) 12th Morning Challenge Morning Challenge 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 알고리즘 - 최단경로 알고리즘 Study 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 02. 알고리즘 30강 최단경로 알고리즘 이해2 15:07 31강 최단경로 알고리즘 이해3 16:40
(알고리즘) 최단경로 알고리즘 - 다익스트라 알고리즘 다익스트라 알고리즘 파이썬 구현 (우선순위 큐 활용까지 포함) 참고: heapq 라이브러리 활용을 통해 우선순위 큐 사용하기 데이터가 리스트 형태일 경우, 0번 인덱스를 우선순위로 인지, 우선순위가 낮은 순서대로 pop 할 수 있음 우선순위큐는 최소힙 방식을 활용한다. 즉 pop할때마다 제일 최소값이 나온다. import heapq queue = [] heapq.heappush(queue, [2, 'A']) heapq.heappush(queue, [5, 'B']) heapq.heappush(queue, [1, 'C']) heapq.heappush(queue, [7, 'D']) print (queue) for index in range(len(queue)): print (heapq.heappop(queue..
(20210128) 11th Morning Challenge Morning Challenge 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 알고리즘 - 그래프 이해 Study 패스트캠퍼스 알고리즘 완전정복 올인원 패키지 강의 02. 알고리즘 21강 그래프 이해와 자료구조 15:08 22강 그래프 이해와 자료구조 - 그래프종류 15:05 23강 그래프 기본 탐색 알고리즘 - 너비우선탐색(BFS)1 14:29 24강 그래프 기본 탐색 알고리즘 - 너비우선탐색(BFS)2 08:12 25강 그래프 기본 탐색 알고리즘 - 너비우선탐색(BFS)3 13:26 26강 그래프 기본 탐색 알고리즘 - 깊이우선탐색(DFS)3 14:36 27강 탐욕알고리즘1 14:36 28강 탐욕알고리즘2 23:49 29강 최단경로 알고리즘의 이해1 12:01
(알고리즘) 탐욕 알고리즘 1. 탐욕 알고리즘 이란? Greedy algorithm 또는 탐욕 알고리즘 이라고 불리움 최적의 해에 가까운 값을 구하기 위해 사용됨 여러 경우 중 하나를 결정해야할 때마다, 매순간 최적이라고 생각되는 경우를 선택하는 방식으로 진행해서, 최종적인 값을 구하는 방식 2. 탐욕 알고리즘 예 문제1: 동전 문제 지불해야 하는 값이 4720원 일 때 1원 50원 100원, 500원 동전으로 동전의 수가 가장 적게 지불하시오. 가장 큰 동전부터 최대한 지불해야 하는 값을 채우는 방식으로 구현 가능 탐욕 알고리즘으로 매순간 최적이라고 생각되는 경우를 선택하면 됨 coin_list = [500, 100, 50, 1] def min_coin_count(value, coin_list): total_coin_count ..