본문 바로가기

분류 전체보기

(124)
Spark: Hadoop의 Architecture, History 그리고 Evolution What is Hadoop and how it works?Hadoop is a distributed data processing platform that offers the following core capabilities.YARN - Yest Another Resource Manager3개의 main components를 가지고 있음.RM - Resoruce Manager(클러스터의 전체 리소스를 관리하고 조율하는 역할)NM - Node Manager(각각의 워커노드가 Node Manager를 통해 자신의 로컬 리소스를 관리함.)AM - Application Master(특정 애플리케이션의 실행을 총괄하며, 필요한 리소스를 NM에게 요청함.)Master - Slave Architecture를 사용함.N..
[최단경로찾기] - 다익스트라 알고리즘 다익스트라 알고리즘은 그리디 알고리즘의 성격을 띄는 '최단경로 찾기' 알고리즘이다.'각 노드에 대한 현재까지의 최단거리'를 저장하며  매번 현재 처리하고 있는 노드를 기준으로 주변 간선을 확인해 가장 짧은 경로로 업데이트 하는 방식으로 동작하기 때문이다. 최단경로를 찾는 알고리즘에는 다익스트라 외에도 벨만 포드 알고리즘, 플로이드 워셜 알고리즘 등이 있다.각 목적과 쓰임에 따라서 선택되어 사용이 되는데, 다익스트라 알고리즘의 경우 그래프에 여러개의 노드가 있을 때 특정한 노드에서 출발하여 다른 노드로 가는 각각의 최단 경로를 구해주는 알고리즘이다.간선 가중치가 0보다 작은 음의 간선이 없을 때 정상적으로 동작하는데, GPS 소프트웨어의 기본 알고리즘으로 채택되기도 한다. 다익스트라 알고리즘을 소스코드로 ..
[Dynamic Programming 추가연습] 효율적인 화폐 구성 Dynamic Programming 알고리즘 문제 풀이 추가 연습 문제로, '효율적인 화폐 구성' 문제를 풀어보자.앞에서 풀었던 개미전사와 비슷한 난이도의 문제이다. (난이도: ⭐⭐) 문제의 조건과 입출력 예제는 아래와 같다.N가지 종류의 화폐가 있다. 이 화폐들의 개수를 최소한으로 이용해 그 가치의 합이 M원이 되도록 하려고 한다. 이때 각 화폐는 몇 개라도 사용할 수 있으며, 사용한 화폐의 구성은 같지만 순서만 다른 것은 같은 경우로 구분한다. 예를 들어 2원, 3원 단위의 화폐가 있을 때는 15원을 만들기 위해 3원을 5개 사용하는 것이 가장 최소한의 화폐 개수이다.입력 조건) 첫째줄에 N, M이 주어진다. (1이후 N개의 줄에는 각 화폐의 가치가 주어진다. 화폐 가치는 10000보다 작거나 같은 ..
Naver Cloud: AI Hands on 교육 1월 17일에는 네이버 클라우드 핸즈온 교육을 들으러 갔다. 우연히 네이버 클라우드에서 무료 교육을 제공해주는 것을 발견해서 친구와 함께 들으러 가게 되었다. 교육은 아래 링크에서 조회 및 신청할 수 있다.https://edu.ncloud.com/schedule EDU PORTAL - NAVER CLOUD PLATFORMImprove your company’s operational competitiveness with a simple and fast workflow.edu.ncloud.com 네이버 클라우드에서 제공하는 AI 클라우드 서비스들에 대해 설명해주고, 실습용 계정을 발급해주어서 하루동안 해당 서비스들을 직접 실습해 볼 수 있도록 해주는 교육이었다. NAVER CLOUD PLATFORM AI H..
Dynamic Programming: 예제 연습 Dynamic Programming 체득을 위해 예제 문제 몇가지를 풀어보려고 한다. 1. 1로 만들기(난이도 ⭐☆)2. 개미 전사(난이도 ⭐⭐)3. 바닥 공사(난이도 ⭐☆) 1. 1로 만들기해당 문제는 피보나치 수열을 dynamic programming으로 풀이할때와 거의 동일한 문제라고 볼 수 있다.이또한 피보나치 수열의 문제를 풀 때 사용했던 가지치기 도식을 떠올려주면 풀 수 있다.우선 어떤 문제인지 살펴보자.https://baekwisdom02.tistory.com/124 알고리즘 개념정리: Dynamic ProgrammingDynamic Programming이란?알고리즘 문제를 풀이할 때 최적의 해를 구하기에 연산량이 많아서 시간이 많이 필요하거나, 메모리 공간이 많이 필요한 문제들이 있다. 그..
알고리즘 개념정리: Dynamic Programming Dynamic Programming이란?알고리즘 문제를 풀이할 때 최적의 해를 구하기에 연산량이 많아서 시간이 많이 필요하거나, 메모리 공간이 많이 필요한 문제들이 있다. 그래서 문제를 풀 때 연산 속도와 메모리 공간을 최대한으로 절약할 수 있게 효율적으로 알고리즘을 작성해야 한다.이번에 정리할 Dynamic Programming은 메모리 공간을 약간 더 사용하면 연산속도를 비약적으로 증가시킬 수 있는 방법이다. Dynamic Programming의 기본적인 아이디어를 살펴보자. 이 알고리즘은 아래 두가지 조건을 만족할 때 적용할 수가 있다.1) 큰 문제를 작은 문제로 나눌 수 있는가? -> Yes2) 작은 문제에서 구한 정답이 그것을 포함하는 큰 문제에도 동일하게 적용되는가? -> Yes  이를 만족하..
Algorithm 개념정리: Greedy Algorithm Greedy Algorithm이란?Greedy Algorithm은 최적의 값을 구해야 하는 상황에서 사용되는 기법이다.'매 선택에서 당장의 결과가 가장 최적인 답을 선택'하여 나아가는 과정이기 때문에,근시안적으로 최적의 경로를 찾아가다보면 결과적으로도 최적의 결과에 도달할 수 있을 것이라는 사고방식으로 문제를 풀어나는 방법이다. 그렇기 때문에 풀려고 하는 문제가 Greedy Algorith에 적합한 문제인지 판별 후 사용해야 한다.당장의 매 선택에 대해서는 최적이지만 종합적으로 봤을 때 문제의 결과가 최적의 값으로 도출된다는 보장은 없기 때문이다. Greedy Algorithm으로 접근할 수 있는 대표적인 상황이 '가장 적은 화폐 개수로 돈 계산하기'이다.50000, 10000, 5000, 1000, 5..
Hadoop Ecosystem과 Apache Spark 기본 지식 정리 시대의 흐름에 따라 점점 더 다양한 형태의 방대한 데이터를 처리해야 하는 시대가 왔다.기존 서버 시스템에서는 DBMS에서 데이터를 저장 및 처리했다면, 데이터의 규모가 확장되면서 DBMS의 한계가 도래하였다. 웹 크롤러 색인 처리 과정에서 생성되는 매우 큰 파일 처리 한계가 발생한 것이다.이처럼 빅데이터를 처리하기 위해 등장한 오픈소스 프레임워크 중 하나가 바로 하둡이다. 검색엔진의 작동 원리에 대해 간단히 살펴보자면 spider, crawler라고 불리는 로봇이 웹페이지를 방문해 모든 내용을 읽어오고 검색에 적합하도록 일정하게 가공하여 저장한다. 데이터 수집 ~ 처리 ~ 분석 일련의 과정은 아래와 같다.1) 데이터 소스: 내부 데이터, 외부 데이터, 미디어 등2) 수집: 로그 수집기, 크롤링 ex) 검..