728x90
반응형

알고리즘 19

[Algorithm] divide and conquer, quick sort - 분할정복, 퀵정렬

오늘은 분할정복과 퀵정렬에 대해 이야기를 해볼까 한다. 지난번 알고리즘에서 재귀함수를 설명했는데, 재귀함수야 말로 분할정복의 가장 대표적인 예이다. 문제를 base case와 recursive case로 나누어서 생각하고, 가장 최소 단위가 해결이 될 때 전체가 해결되도록 하기 때문이다. [ Hello Coding, 그림으로 개념을 이해하는 알고리즘 ]의 챕터 4에 나오는 내용으로 설명을 시작해본다 Divide and conquer ( 분할 정복 ) 한자로 번역이 되니까 어려워보인다. 조금 말을 쉽게하자면, "쪼개고 쪼개서 하나씩 해결하자" 이다. 아래의 그림은 책의 예제이다. 여러분이 농부이고, 위의 그림과 같은 농장을 가지고 있다고 가정한다. 이 농장을 똑같이 생긴 정사각형 토지로 나누고 싶습니다. ..

Algorithm 2020.09.11

[Data structure] 자료구조 - stack, queue

자료구조의 가장 기본이 되는 stack ( 스택 ) 과 queue ( 큐 ) 는 자료구조의 처음을 장식한다. 그런데 정작 사용할 때에는 어떻게 해야할 지 막막한 게 초보자의 마음이리라. 자료구조는 구현과는 제법 거리가 있다. 스택과 큐는 그냥 배열로 선언해서 사용해도 무방하다. 이처럼 자료구조는 어떤 방식으로 데이터를 관리할 지 그 구조에 대해 설명하는 것이지, 어떤 방식으로 구현해야만 한다는 건 아니다. 따라서 앞으로 정리하게 될 모든 자료구조도 개념에 대해 이해하는 게 우선이라는 점을 기억하자. 또, 자료구조는 알고리즘과 뗄 수 없는 관계이기때문에 아주아주 중요한 개념이라는 것 정도는 알고 있자. Stack ( 스택 ) 스택은 동전쌓기처럼 가장 나중에 쌓은 동전을 가장 먼저 꺼낼 수 있는 구조이다. ..

Algorithm 2020.09.07

20200906

이전에 우분투 다시 깔면서 로컬에 있던 폴더가 날아갔다. 다시 하자.... 후.... 오늘말고.... 지금이라도 발견해서 다행이다. 어제는 프로그래머스에서 기출문제 하나 풀다가 로그인 안했길래 로그인 하니까 코드가 다 날아갔었다. 그래도 위안삼자면 50줄짜리 코드가 30줄로 줄었고, 로직이 단순해졌다. 역시 자의든 타의든 짜던 거 날리고 다시 짜면 코드가 좋아진다. 폴더 날린 건 좀 큰데.... 9월 06일 (일) Today I Learned 오늘은 자료구조, 알고리즘, 서버요청하기를 공부하였다 몇 가지 알고리즘 문제를 풀었다 블로그 포스팅을 했다. 알고리즘 스터디를 했다. Tomorrow I'll Learn 우준님과 페어 프로그래밍 시간에 알고 있는 내용 공유하기

Today I Learned 2020.09.06

[Algorithm] 이진탐색 - Binary Search

이진탐색은 [Hello Coding] 그림으로 개념을 이해하는 알고리즘의 가장 첫번째로 소개되는 알고리즘이다. 간단하게는 Up&Down 게임을 생각하면 쉽다. Up & Down 게임을 해보려면 여기를 통해 해보자. 이진탐색 이진탐색을 하기에 앞서, 단순탐색에 대해 생각해보자. 내가 0부터 100 사이의 숫자 중 하나를 선택했을 때 단순하게 내가 생각한 숫자를 맞히기 위해서는 0부터 시작해서 100까지 1씩 증가하면 된다. const myNumber = 88; for ( let i = 0; i < 100; i++ ) { if ( i === 88 ) { console.log("Find the number you thought! It's ${i} !"); } } 위의 코드처럼 0부터 1씩 증가하며 내가 생각한..

Algorithm 2020.09.06

20200828

하루가 금방 가버렸다. 뭘 할까 고민하다가 놀아버린 날. 내일부터는 아침에 간단하게라도 계획을 세워야겠다. 8월 28일 (금) Today I Learned 오늘은 슬랙봇을 웹훅으로 제작하고 heroku를 통해 배포하였다. node-schedule 모듈을 통해 시간을 설정하였으나, 서버가 계속 실행되지 않는 문제를 확인하였다. 이에, setInterval로 getTime 함수를 꾸준히 실행하여 서버가 계속 살아있도록 응급조치를 하였다. 과연 서버가 꺼지지 않을 지는 내일 확인해 보아야겠다. 알고리즘 스터디 퀵 정렬을 완료했다. 병합정렬이 생각대로 동작하지 않아 내일 코드를 날리고 다시 작성할 에정 정렬시리즈 ------ part I 1. 선택정렬 ( Selection Sort ) ✅ 2. 버블정렬 ( Bu..

Today I Learned 2020.08.28

20200816

오늘 하려고 세운 목표가 너무 많았나...? 아니면 내가 그냥 하기 싫어 미루는 걸까? 스스로에게 조금은 채찍이 필요한 날이다 8월 16일 (일) Today I Learned 오늘은 알고리즘 공부와 블로깅, 그리고 리액트에 대해 공부하였다 알고리즘은 챕터2 선택정렬까지 했는데, 스터디에서 함께 만들어보려 했으나 시간을 너무 넘겨버렸다. 이 부분에 대한 대책이 필요하다. 블로깅을 쉽게 이해할 수 있게 하려고 노력하는 편인데, 아무래도 어려운 개념을 쉽게 설명하려다보니 지금은 굳이 설명할 필요가 없다면 과감히 생략한다. 그런데 이게 내가 보기엔 조금 부족하다는 생각이 종종 든다. 중간점을 찾아야겠다. 리액트 공부를 하려고 하는데, 전혀 모르는 내용이라서 그런지 강의를 찾아보고 자료를 찾아보고 직접 해봐도 이..

Today I Learned 2020.08.16
728x90
반응형