본문 바로가기

분류 전체보기502

Algorithm - 선택 정렬(Selection Sort) 1. 선택 정렬(Selection Sort) 이란? - 주어진 데이터 중, 최소값을 찾아 순서대로 나열하는 정렬방법 - 찾아낸 최소값을 데이터의 맨 앞에 위치한 값과 교체한다. - 교체된 맨 앞의 최소값을 제외한 나머지 데이터를 대상으로 이전의 작업을 반복한다. - 최종적으로 정렬된 데이터의 구조를 갖는다. 1-A. 어떻게 구현할까? ex) 5, 4, 3, 2, 1 [풀이] 1. 5와 4를 비교하여 더 작은 값을 찾는다. → 4 2. 4와 3을 비교하여 더 작은 값을 찾는다. → 3 3. 3과 2를 비교하여 더 작은 값을 찾는다. → 2 4. 2와 1을 비교하여 더 작은 값을 찾는다. → 1 5. 최소값이 1이므로 맨 앞에 위치한 5와 교체(swap)한다. → 1, 4, 3, 2, 5 6. 위의 동작을 .. 2020. 9. 10.
Algorithm - 버블 정렬(Bubble Sort) 0. 알고리즘 연습 방법 - 연습장과 펜을 준비한다. - 알고리즘 문제를 읽고 분석 후 문제를 풀기 위한 순서를 생각한다. - 각 순서 또는 절차마다 구현할 알고리즘을 나누고 세부 항목을 나누어 적어본다. - 코드로 구현하기 위해 필요한 데이터 구조 또는 사용할 변수를 정리한다. - 각 문장을 코드 레벨로 적는다. - 코드의 흐름을 데이터 구조 또는 사용할 변수를 이용해 손으로 직접 적으면서 작동한다. 즉, 코드에 필요한 모든 순서/절차/흐름을 연습장에서 정리를 한 후 코드로 옮기기만 하는 것이다. 1. 정렬(Sort) 이란? - 데이터를 순서대로 나열하는 것 또는 어떤 규칙이나 기준을 기반으로 나열하는 것 a) 정렬을 알아야 하는 이유 - 정렬은 프로그램 작성 시 빈번하게 사용되는 가장 기본적인 알고리.. 2020. 9. 9.
Data Structure - 개념 정리(summary) - 이전 포스팅까지 기본적인 자료구조를 공부했습니다. 이를 기반으로, 알고리즘을 공부해 나갈 계획입니다. - 이번 포스팅은 복습 겸 앞선 포스팅에서 다뤘던 기본적인 자료구조에 대한 개념을 정리하는 포스팅입니다. 1. 자료구조와 알고리즘이란? - 자료구조(data structure): 대량의 데이터를 효율적으로 관리하기 위해 사용하는 데이터의 저장방식을 의미한다. 저장할 데이터의 특성과 데이터 사용의 목적에 따라 해당 데이터를 저장하는 방식이 달라진다. - 알고리즘(algorithm): 프로그래밍에서 어떠한 문제를 해결하거나 풀어내기 위한 방법 또는 과정을 의미한다. 수학처럼, 한가지 문제에도 다양한 알고리즘이 존재한다. 다만, 좋은 알고리즘이란 프로그래밍 상에서 가장 적은 자원(저장공간, 메모리)을 사용.. 2020. 9. 8.
파이썬 스크래퍼(python scrapper) * 플레이 시 광고가 나옵니다.(카카오 스테이션 사용으로 인해 광고발생) 1) 기능 설명 검색어를 기반으로 원격근무 채용정보를 StackOverflow, WeWork, RemoteOk 세가지 사이트에서 크롤링 Based on a search word, the program scraps remote jobs' info from the three different platforms which are StackOverflow, WeWork, RemoteOk. fake DB를 사용하여 검색한 자료를 저장하고 재검색되면 불러올 수 있도록 하여 크롤링 검색 속도를 향상 While the program is running, if a user searches the same word that has searched b.. 2020. 9. 7.
카테고리 공지 안녕하세요. 개발자를 향하여 블로그 주인장입니다. "Side Projects"라는 카테고리는 제목 그대로 제가 공부하면서 직접 만든 프로젝트들을 올리기 위해서 만들었습니다. Git과 함께 이용할 준비를 하고 있습니다. 앞으로 프로그램 구동 영상과 Git주소를 함께 업로드하는 것을 계획하고 있습니다. 제가 공부하면서 공유하는 정보와 기록들이 필요한 누군가에게 조금이나마 도움이 되면 좋겠습니다. 감사합니다. 2020. 9. 7.
Data Structure - Heap(2) 1. Heap 구현 - 데이터 삭제(pop) - Heap은 최대값(max heap) 또는 최소값(min heap)만을 삭제한다. 그렇기에 root노드만을 삭제하면 된다. - root노드의 삭제는 root노드를 꺼내었을 때 발생하며, 이 동작을 pop이라고 명시한다. def pop(self): # heap에 데이터가 없는 경우 if len(self.heap_array) = len(self.heap_array): #배열의 길이보다 긴값 = 없는값 return False # 재정렬 2번 조건 - 좌측 자식노드만 존재(우측 자식노드는 없음) elif right_child >= len(self.heap_array): # 좌측 자식노드와 값을 비교하여 자식노드 값이 큰 경우 if self.heap_array[pop.. 2020. 9. 3.
Data Structure - Heap(1) 1. Heap이란? - Heap은 트리구조를 기반으로한 자료구조로 데이터에서 최대값과 최소값을 빠르게 찾기위해 고안된 완전 이진트리(Complete Binary Tree)이다. * 완전이진트리란? → 트리에 데이터가 삽입될 때, 왼쪽에 위치한 자식노드를 먼저 채우는 규칙을 갖고 있는 이진트리이다. 이진트리이기 때문에 자식노드는 2개만 가질 수 있다. 1) Heap을 사용하는 이유 - 우선순위 큐와 같이 최대값과 최소값을 빠르게 찾기위해 사용한다. - 이를 배열로 구현하면 최대값과 최소값을 찾는데 O(n)만큼 걸린다. - 반면에, heap을 이용하여 최대값과 최소값을 찾으면 O(log n)만큼 걸린다. (더 빠르다) 2) Heap의 구조 - Heap은 최대/최소 값을 구하기 위한 구조인 최대 힙(Max H.. 2020. 8. 31.
HTML/CSS - Media Query(반응형 웹사이트 만들기) 1. Media Queries - Media Query는 오직 CSS만을 이용하여 웹사이트를 보고있는 사용자의 스크린 사이즈를 알 수 있는 방법이다. 이를 이용하여 사용자의 스크린에 맞게 엘리먼트를 다르게 출력하는 반응형 웹사이트를 만들 수 있다. - 위의 코드에서 처럼, 사용자의 브라우저의 너비가 800px미만인 경우 사각형의 바탕색이 토마토색으로 변하고 800px이상인 경우에는 청록색으로 바뀌게 된다. [작성 형식] @media mediaType and (속성: 속성값) and (속성: 속성값)... { 엘리먼트 { 적용할 속성 및 속성값; } } - 미디어type은 screen, print, speeach가 있다. - 다양한 속성값을 사용하여 만든 예시를 살펴보자. 예시 1) 화면너비 범위 정하기 .. 2020. 8. 30.
HTML/CSS - Animation 1. Animation - 이전 포스팅에서 언급했던 Transition과 Transformation은 특정 행동과 같은 발동 조건을 기반하여 상태의 변화를 animation으로 표현하는 방법이었다. - 이와 다르게, animation은 아무 조건없이 계속적으로 작동되는 것을 의미한다. 그렇다면 예시를 통해서 예시 1) x축을 기준으로 360도 회전하는 animation [Animation 작성 방법 - 위의 코드를 참고하세요.] 1. @keyframes 어노테이션을 부여하고 animation이름을 정의한다. 2. animation의 시작과 끝을 정의한다. 3. 정의한 animation이 적용할 엘리먼트에 animation 속성을 정의한다. 적용할 수 있는 속성값은 아래와 같다 - 위의 코드에서 infin.. 2020. 8. 30.