본문 바로가기
728x90

algorithm17

[Algorithms] Heap sort(힙 정렬)란 무엇인가요? * 2020년 4월 29일 자 포스트를 업데이트한 포스트입니다.*포스트 난이도: HOO_Junior# Heap Sort: 쌓여있는 데이터를 정렬하는 방법Heap이란 단어를 영어사전에서 찾아보면 "쌓여있는", "더미" 등의 뜻을 확인할 수 있다. 즉, Heap sort (힙 정렬)는 많은 양의 데이터를 정렬하는 방법이다. Heap sort는 알고리즘에서 여러 가지 정렬 방법 중 하나로, 데이터 값을 최댓값 또는 최솟값 기준으로 정렬할 때 사용한다. 최댓값 또는 최솟값으로 정렬하는 것을 한국어로는 힙 정렬(Heap sort)이라고 하며, 오름차순 또는 내림차순으로도 표현할 수 있다. Heap sort는 다른 정렬 방법과 달리 시각적으로 표현할 때 트리 형태로 나타낼 수 있다. 1차원 배열 형태에서 정렬하는 .. 2024. 12. 31.
[Deep Learning Algorithms] SGD(Stochastic Gradient Descent), 확률적 경사 하강법 SGD(Stochastic Gradient Descent), 확률적 경사 하강법 포스트 난이도: HOO_Senior [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Gradient Descent와 Stochastic Gradient Descent 딥러닝(Deep learning) 또는 인공 신경망 학습 모델은 실제 뇌의 시냅스 작용을 보고 만든 학습 모델 방식에 해당한다. 딥러닝을 한다는 점에서는 동일하지만 어떤 알고리즘을 사용하느냐에 따라서는 딥러닝의 효율성이 달라진다. .. 2022. 7. 29.
[Algorithms] Topology, Network Topology Topology, Network Topology 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Topology와 Network Topology 알고리즘 공부를 하다 보면 자주 마주치는 것이 바로 Topology, 한국말로는 위상수학이다. (필자는 위상 수학보다는 토폴로지가 더 와닿는다.) CS에서 배우는 알고리즘 자체가 새롭게 나온 학문이나 지식이 아닌 기존에 있는 지식을 기반으로 만들어진다. 수학적 개념에서 토폴로지는 연속성과 수렴성을.. 2022. 7. 22.
[알고리즘] Machine Learning Algorithm: Random Forest Machine Learning Algorithm: Random Forest 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Random Forest Algorithm 랜덤 포레스트 알고리즘(Random forest algorithm)은 기계 학습(Machine learning)에서 사용되는 분류와 회귀 분석을 위한 알고리즘 종류 중 하나이다. Machine learning을 통해 수많은 데이터를 분류한다는 것은 중요한 기능 중에 하나이다... 2022. 6. 9.
[알고리즘] Machine Learning Algorithm: Support Vector Machine(SVM) Machine Learning Algorithm: Support Vector Machine(SVM) 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # SVM Support vector machine은 SVM이라고 불리는 Supervised learning(지도 학습) 방식의 Machine learning algorithm이다. Mahcine learning algorithm이면서 Supervised learning에 해당하기 때문에 분류와 .. 2022. 6. 1.
[알고리즘] K-nearest Neighbors Algorithm(K-NN): K-최근접 이웃 알고리즘 K-nearest Neighbors Algorithm(K-NN) 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # KNN Algorithm K-NN 또는 KNN이라고 불리는 K-nearest neighbors algorithm은 Pattern 인식 알고리즘의 한 종류이다. 머신러닝(Machine learning)에서 사용되는 알고리즘이며, K-mean clustering algorithm처럼 데이터 집단을 분류하는 데 사용된다. 이 알고리즘.. 2022. 5. 29.
[알고리즘] K-mean Clustering Algorithm: Clustering이 Linear가 아닐 경우 K-mean Clustering Algorithm: Clustering이 Linear가 아닐 경우 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Linear가 아닌 Clustering 앞선 포스팅에서 K-mean clustering algorithm에 대해서 살펴보았고 일직선에 위치한 데이터 집단을 클러스터링(Clustering)하는 방법에 대해서도 예제를 통해 살펴보았다. 이번 포스트에서는 일직선이 아닌 평면에 임의의 위치에 존재하는 .. 2022. 5. 24.
[알고리즘] K-mean Clustering Algorithm K-mean Clustering Algorithm 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # K-mean Clustering Algorithm K-mean clustering algorithm은 Machine learning 과정에서 분류나 그룹화를 하는 데 사용되는 대표적인 Machine learning 알고리즘 중에 하나이다. K-mean clustering은 간단하면서도 많이 알려진 기본적인 ML 알고리즘이며, K-mean 기반.. 2022. 5. 24.
[알고리즘] Machine Learning Algorithm: Apriori Learning Algorithm Machine Learning Algorithm: Apriori Learning Algorithm 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Apriori Learning Algorithm Apriori learning algorithm은 ARM(Association Rule Mining)의 한 종류에 해당하는 알고리즘이다. Apriori 알고리즘은 인공지능 프로그래밍에 있어서 기본적으로 알아두어야 하는 알고리즘에 하나이기도 하며, .. 2022. 5. 23.
[알고리즘] Closet Pair of Points (최근접 점쌍 문제) Closet Pair of Points (최근접 점쌍 문제) 포스트 난이도: HOO_Middle # Closet Pair of Points Closet pair of points는 평면에서 points들 간의 Euclidean distance에 대한 가장 작은 값을 구하는 알고리즘이다. Closet pair of points이라고 하면 한국에서는 최근접 점쌍 또는 최근접 점쌍 문제라고 부른다. 또한 여기서 말하는 Euclidean distance는 유클리드 거리, 보다 더 쉬운 예제를 들자면 점과 점 사이의 거리를 구하는 공식을 의미한다. 더 쉽게 말하자면, 수학에서 함수 부분에서 배우는 점과 점 사이의 거리를 구하는 공식이나, 삼각형을 통한 기울기를 구하는 공식을 생각하면 이해하기 쉽다. Closet .. 2021. 12. 5.
[알고리즘] Set Cover Set Cover 포스트 난이도: HOO_Junior [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Set Cover란? Set cover는 특정 Set(=집합)이 존재한다고 가정했을 때, Sub sets(=부분 집합)들이 합쳐져 특정 set을 나타낼 수 있는지에 대해서 확인하는 과정을 Set cover라고 한다. Set은 집합을 의미하고 Cover는 덮는다 또는 엄호한다 다른 표현으로는 대체할 수 있다는 의미로 사용된다. 따라서 Set cover는 말 그대로 여러 set.. 2021. 12. 5.
[Programming] Dijkstra's Shortest Path Algorithm Dijkstra's Shortest Path Algorithm 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Dijkstra Algorithm Shortest Path를 구하는 알고리즘 중에서 대표적인 알고리즘이 Dijkstra's Shortest Path Algorithm, 또는 Dijkstra algorithm이라고 불리는 알고리즘이다. 이번 포스트에서는 Dijkstra algorithm 원리에 대해서 알아보도록 하겠다. Dijkst.. 2021. 10. 8.
[Programming] Minimum Cost Spanning Tree(MST): Kruskals Algorithm Minimum Cost Spanning Tree(MST): Kruskals Algorithm 포스트 난이도: HOO_Middle [Notice] 포스트 난이도에 대한 설명 안녕하세요, HOOAI의 Henry입니다. Bro들의 질문에 대한 내용을 우선적으로 포스팅이 되다 보니 각각의 포스트에 대한 난이도가 달라서 난이도에 대한 부분을 작성하면 좋겠다는 의견을 들었습니다 whoishoo.tistory.com # Minimum Cost Spanning Tree(MST): Kruskals Algorithm 이번 포스트에서는 MST의 대표적인 알고리즘 방식인 Kruskals algorithm에 대해서 살펴보도록 하겠다. 예제를 통해서 Kruskals algorithm을 살펴보도록 하자. 예제 코드가 필요한 Bro.. 2021. 10. 6.
[Programming] FIFO Algorithm, FIFO와 QUEUE의 차이점 FIFO Algorithm FIFO란 First Input First Output의 줄임말로 한국에서는 선입선출로 알려져 있다. (필자는 FIFO라고 표현할 것이다.) FIFO는 말 그대로 제일 처음 입력된 데이터가 제일 처음으로 내보내진다라는 의미를 가지고 있다. 즉, 새로운 데이터가 저장되거나 입력되면 오래된 데이터를 내보내고 새로운 데이터가 저장되는 방식이 FIFO인 셈이다. FIFO에 대해서는 이번 포스트에서 처음 알게 된 BRO들도 있겠지만 사실 프로그래밍을 공부하다 보면 많이 접할 수 있는 기초 알고리즘 방식 중에 하나가 바로 FIFO이다. 그렇기에 어느 정도 BRO들이 대략적으로 FIFO에 대해서 알고 있지만 유의할 점이 있다. FIFO는 하나의 data structure가 아니라 data .. 2021. 6. 30.
[HOO's Q&A] 알고리즘 공부를 왜 해야 하나요? Q: 알고리즘 공부를 왜 해야 하나요? 프로그래밍 공부를 하거나 취업 준비하는 Bro들과 이야기를 나누다 보면 공통적으로 이야기하는 부분이 알고리즘이 어렵다는 것이다. 찬찬히 이야기를 나누다 보면 알고리즘이 어려운 이유는 알고리즘을 왜 공부해야 하는지 정확히 모르기 때문이다. 알고리즘 공부에 대한 필요성을 느끼지 못하다 보니 그다지 공부를 하기 싫게 느껴진다. 알고리즘을 모르고도 프로그래밍이 가능하다. 사실 알고리즘을 공부를 하지 않고도 프로그래밍을 할 수 있다. 특히 정형화된 프로그래밍일수록 사실 알고리즘을 모르고도 프로그램 개발을 하는데 당장의 지장은 없다. 실제로도 멘토링을 통해서 취업을 한 3년 차 이내 Bro들과 이직 멘토링을 하다 보면 알고리즘을 다 잊어버린 Bro들이 대부분이다. 솔직히 필자.. 2021. 6. 17.
[HOO's Q&A] 알고리즘이 뭔가요? Q: 알고리즘이 뭔가요? 알고리즘에 대해서 많이 들어보지만, 알고리즘에 대해서 명확히 모를 수 있다. 처음 컴퓨터 공학과를 가서 프로그래밍을 접한 학생의 경우 알고리즘에 대해서 이해하기 전에 수많은 프로그래밍 과제로 몸이 먼저 알고리즘에 대해서 익히게 된다. 프로그래밍에 분야에서 알고리즘에 대한 definition을 살펴보면, 문제 해결 및 결괏값 산출을 위한 단계적 절차라는 의미를 가지고 있다. 프로그래밍의 알고리즘이라고 하면 어렵게 느껴지니, 산수 과정을 통해 알고리즘에 대해 이해해보자. 예를 들어 1+2+3=6 이라는 계산식이 있다고 가정하자. 1+2+3이라는 식을 본다면, 자연스럽게 각 숫자들을 더하여 6이라는 결괏값이 산출되는 걸 알고 있다. 초등학교 때부터 단련해온 덧셈은 눈으로만 봐도 자연스.. 2021. 3. 7.
[Programming] Why do we use flow charts? Why do we use flow charts? Flow charts를 그려야 하는 이유 Q: 형 프로그래밍 실력을 높이려면 어떻게 공부해야 될까요? A: you have to draw your own flow charts, 플로우 차트를 직접 그려 봐야 되지. Q: 플로우 차트랑 프로그래밍 능력이랑 상관이 있나요? A: 플로우 차트를 그리다보면 보다 더 빠르게 프로그래밍을 할 수 있게 되는 거야. Q: 아 그래서 교수님이 플로우 차트 그리라고 하는구나. A: 하지만 대부분의 학생이 듣기만 하고 하나하나 그려보는 사람은 많지 않지. 한국말로 하면 순서도라고도 불리는 Flow charts(플로우 차트 또는 순서도)는 프로그램이 어떤 식으로 작동이 되는지 보여주는 시각적인 표현 방법이라고 볼 수 있다. 하지.. 2019. 12. 19.
728x90