Python(61)
-
[Algorithm] 분할 정복(Divide&Conquer) ft. 합병 정렬, 퀵 정렬
이번 포스팅에서 다룰 알고리즘은 '분할 정복'이다. Divide and Conquer 이 알고리즘은 문자 그대로, 분해해서 해결하는 것을 메인 흐름으로 가져간다. 밑의 그림을 보면 이해될 것이다. * 실습 환경은 windows 10/ vscode에서 이뤄졌습니다. 📍 정의 한 번에 해결하기 어려운 문제(시간문제, 공간문제 등)를 잘게 쪼개고 각개 격파한 후, 하나의 답을 도출하는 알고리즘. 분할 정복 알고리즘은 다음 세 개의 프로세스를 가진다. 📍 Process (1) Divide : 문제를 정의하고, 잘게 쪼개는 과정이다. 이 단계에서 문제를 잘 쪼개야 손쉽게 문제를 해결할 수 있다. (2) Conquer : 잘게 쪼개진 문제를 해결할 시간이다. 분할 알고리즘의 문제는 쪼개도 사실상 같은 문제들이다. ..
2022.06.14 -
[mini project] 지역 인구&주간보호센터 데이터 수집/가공 프로그램
Kmong을 통해 의뢰가 들어왔다.https://kmong.com/gig/384662 크롤링 전문 프로그램 만들어 드립니다. | 40000원부터 시작 가능한 총 평점 5점의 IT·프로그래밍,1개 총 작업 개수 완료한 총 평점 5점인 정적코더의 IT·프로그래밍, 데이터, 마이닝·크롤링 서비스를 1개의 리뷰와 함께 확인해 보세요. IT·프로그래밍, 데이터, 마이닝·크롤링 제공 등 40000원부kmong.com "경북 상주시의 70세 이상 인구 현황과 주간보호센터 현황 데이터를 실시간으로 수집하고,보기 좋은 데이터로 가공해주세요." [작업 기간]2022.05.30 - 2022.06.05 [크롤링 사이트] 1. NHISS, 국민건강보험https://nhiss.nhis.or.kr/bd/ay/bdaya001..
2022.06.06 -
[C++] C++ 공부하는 이유 및 목표
C++를 공부해야겠다는 생각은 하고 있었다. 다만, 데이터/Python을 파느라 미루고 있었다. 현재 군에서 의무복무를 하고 있다. 다행히 코딩이 자유롭게 되는 컴퓨터가 있어서 그곳에서 Data Engineering을 공부하고 있었다. 하지만 서버 측면에서 한계가 있었고, 결국 Spark 기초만 보고 후일로 미뤘다. 이 답답한 곳에서 뭘 할 수 있지? 생각해본 결과, 3-4개월 남은 기간 동안 언 매니지드 언어(C, C++)를 공부하기로 했다. 데이터 엔지니어링은 python, java scala가 주요 언어지만, 결국 코드 자체를 더 클린 하게 짜려면 C, C++ 같은 원초적(?) 언어를 알아야 한다고 생각했다. 더불어 매니지드 언어를 사용할 땐 자동으로 되었던 메모리 처리 등 코드 뒷단에서 일어나는 ..
2022.05.29 -
[mini project] 주식 매매 동향 데이터, 크롤링 프로그램
COVID-19로 주가 시장이 요동치면서, 주식에 관심을 가지는 사람이 많아졌다.필자도 마찬가지였다. 어떻게 하면 떡상하는 주식을 살 수 있을까?하지만 책을 읽어봐도, 유튜브 영상을 찾아봐도 뚜렷한 확신을 가질 수 없었다.나의 주식 통장도 파란색으로 물들었다. 그러다 문득 이런 생각을 했다.'개미와 반대로 주식을 매수/매도하면 되지 않을까?' 서민들은 개미다. 개미들은 사실 주식 시장에 대해 아는 바가 별로 없다.그래서 내가 사면 떨어지고, 전문가가 사면 오르는 기이한 상황이 발생했다. 하지만 특이하게도 기업, 외국인이 뭔가 움직이면 그대로 움직였다.매도하면 주가가 떨어지고,매수하면 주가가 올라갔다. 개미와 함께하면 죽을 것이고, 개미를 배반하면 살 것이다!! 그래서 만들었다.개미와 똑똑한..
2022.05.27 -
[BOJ] #1912번: 연속합
문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 입력 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 출력 첫째 줄에 답을 출력한다. 예제 입력 1 10 10 -4 3 1 5 6 -35 12 21 -1 예제 출력 1 33 예제 입력 2 10 2 1 -4 3 4 -4 6 5 ..
2022.05.26 -
[SparkML] MLlib Parameter 튜닝 개념 및 코드
Parameter Tuning 머신러닝을 다뤄본 사람이라면 익숙한 개념일 것이다. 머신러닝을 알고리즘을 이용하더라도, 그 안의 변수를 어떻게 조정하냐에 따라서 모델의 성능이 달라진다. MLlib은 당연히도 Paramter Tuning 기능을 제공한다. 코드를 살펴보며 어떻게 튜닝을 하는지 살펴보자. [만약 Spark에 대해 아무것도 모른다면?] https://mengu.tistory.com/26?category=932924 [Spark] Apache Spark 개념 및 버전 Apache Spark에 대해 알아보자. Apache Spark란 빅데이터 처리를 위한 오픈소스 엔진(고속 분산처리)이다. 이미 아마존, 우버, 넷플릭스 등 다양한 기업에서 쓰이고 있다. Apache Spark 등장 배경 데이터가 m..
2022.05.22