반응형

기타 165

Linear Sorting Algorithm

오늘도 신나게 알고리즘을 해봅니다. 6006의 Lecture 5의 주제는 Linear Sort Algorithm입니다. Linear Sort란 정렬을 \(O(n)\)으로 해결하는 것을 뜻합니다. 원본 자료는 스토리가 있습니다. Direct Access Array Sort => Counting Sort => Tuple Sort => Radix Sort순서로 구성되어 있습니다. 이해하긴 참으로 힘들지만 그래도 열심히 노력해봅니다. Direct Access Array Sort Array를 이용해 정렬을 수행하는 알고리즘. \(O(u) \text{ where u is max key of array}\) 한 Array를 정렬하는 방법 중 단순하게 떠올릴 수 있는 방법은, Array의 모든 아이템의 key값이 정수..

온누리상품권 지도 만들기 1편 - 웹 크로울링

안녕하세요 집 DS입니다. 오늘은 온누리상품권 지도를 만든 이야기를 해보도록 하겠습니다. 문제상황 : 직관적이지 않은 온누리상품권 가맹점 검색 시스템 온누리상품권을 받는 때가 있습니다. 여러 시장을 중심으로 사용할 수 있는 상품권입니다. 근데 네이버 지도로 검색해도 어떤 가맹점이 있는지 정확히 알기가 어렵습니다. 좀 더 정확히 말하면 "온누리상품권"이라고 검색하면 시장까지는 알려주지만 그 내부에 어떤 상점, 업종, 품목을 지원해 주는지 알기 어렵다는 점이 있습니다. 그렇다면 상점을 검색할 순 없을까요? 검색할 수 있습니다. 다만 직관적으로 지도에 표시해주지 않는다는 문제가 있습니다. 그래서 생각했습니다. "온누리 상품권 지도"를 만들어보자. 아이디어는 간단했지만 과정은 꽤나 고됐습니다. 1단계 : Sel..

6.006 Lecture2 - 데이터 구조란 + Static Array로 sequence 이해하기

안녕하세요 집 DS입니다. 지도를 하기로 마음먹었지만 그래도 컴퓨터에 대한 지식은 여전히 필요합니다. 그중 데이터 구조이해로부터 나오는 알고리즘 구현은 특히나 중요한 부분입니다. 모든 부분을 설명할 순 없지만 제가 얘기하고 싶고 이해한 부분을 공유하고자 합니다. 자료구조(Data Structure)란 흔히들 자료구조를 푼다. 자료구조를 구현한다라는 말을 많이 쓰곤합니다. 프로그래밍을 처음 접했을 때나 지금이나 다소 이해가 안 될 때가 있습니다. 그럼 수업 자료를 기준으로 자료구조란 무엇인지 얘기해 보도록 하겠습니다. A data structure is a way to store data, with algorithms that support operations on the data 위 내용을 해석해보면 자..

6.006 Lecture1 - 알고리즘이란

안녕하세요 집DS입니다. 저는 알고리즘 공부를 하다말다 그러곤 했습니다. 지금까진 특별한 목적이 없었기 때문에 그랬던 것 같습니다. 최근엔 다시 목표가 생겨 차근차근 해나가고 있습니다. 그 중 6006이라는 MIT 수업이 가장 마음에 들어서 다시 내용을 보고 공부하고 있습니다. 공부중에 가장 큰 공부는 누군가를 가르치는 것이라고 합니다. 그럼 누군가를 가르친다는 마음으로 내용을 정리해보도록 하겠습니다. 알고리즘이란? 알고리즘을 글자 그대로 말하면 매우 쉽습니다. 수업 내용대로 한다면 다음과 같습니다 알고리즘 : 주어진 문제를 1)정확 2)효율적으로 해결하는 절차, 방법, 규칙들의 집합 쉽습니다. 말은. 그럼 문제란 무엇일까요? 우리는 흔히 문제를 해결한다는 말을 씁니다. 그리고 실생활의 문제를 해결하는 ..

AutoGIS Excercise-1 : txt파일에서 shapely point 만들기

안녕하세요 집DS 입니다. 좌표 데이터는 다양한 형태로 존재합니다. DB에 저장되어 있을 수도 있고, json 등 파일 형태로 저장되어 있을 수도 있습니다. 오늘은 텍스트 데이터로부터 geo dataframe을 읽는 내용을 중심으로 이야기를 써보겠습니다. 목차 - 데이텀(Datum)과 투영 - 텍스트 파일에서 포인트 생성 1. 데이텀과 투영 지도를 쉽게 쓰고 있지만 지도가 어떻게 만들어지는 어느정도 이해가 필요합니다. 그래야 코드에 나오는 crs(coordinate reference system) 등에 대해서 알 수 있습니다. 위에 첨부한 그림을 보게되면 지도를 만드는 과정을 한 장으로 압축했다고 볼 수 있습니다. 위 그림을 차근차근 뜯어보면 지도가 만들어지는 과정을 이해할 수 있습니다. 1단계 타원체 ..

아이폰 RoomPlan API로 30초 만에 내 방 스캔하기

안녕하세요 집DS입니다. 3D 지도를 만들기 위해서는 건물 껍데기 또는 내부에 대한 3D 데이터를 취득하는 것이 필수입니다. 몇년전에 Apple에서 RoomPlan API를 발표했습니다. Lidar장비를 포함하는 iphone pro 모델에서 방을 스캔할 수 있도록 해주는 api 입니다. 오늘은 RoomPlan API를 직접 구동해본 이야기를 써보겠습니다. 목차 - 준비물 - 코드 다운 받기 - XCode 설정하기 - 아이폰 설정하기 - 구동 결과물 1. 준비물 XCode 다운로드 개발자 Key iphon pro(라이다 탑재) mac 준비물이 꽤나 많습니다. 이전에 ios개발을 해보신 분들이라면 크게 문제 없는 부분이라고 생각합니다. 제가 기억을 되짚어 아는 부분만 다뤄보겠습니다. xcode 다운로드는 앱..

AutoGIS Excercise-1

안녕하세요 집 DS입니다. 지난 포스팅에서는 Python을 통한 GIS 자동화와 관련된 렉쳐에 대해 소개해 드렸습니다. 이번에는 제가 직접 풀어본 후기를 써보려 합니다. 해당 문제원본은 아래 링크를 통해 확인 가능합니다 https://github.com/Automating-GIS-processes-II-2023/Exercise-1 GitHub - Automating-GIS-processes-II-2023/Exercise-1 Contribute to Automating-GIS-processes-II-2023/Exercise-1 development by creating an account on GitHub. github.com 문제 1a) x,y좌표를 받아 Point로 만들기 1주 차 문제를 보면 shap..

Automating GIS Process 2023 시작

안녕하세요 집DS입니다. 다른 이름으로 알고계시던 분들에게는 살짝 당황스러운 이름이라고 생각합니다. 지금까지 해오던 건축과 프로그래밍을 넘어서, 지도, 데이터사이언스를 접목해 나가는 과정을 차근차근해나가려 합니다. 다른 이야기를 기대하셨던 분들의 너그러운 양해를 부탁드립니다. 그럼 GIS 기초를 위해 듣는 프로그램을 소개하려 합니다. Automating GIS Process 란? 대학원 시절은 태풍과 같았습니다. GIS 대학원임에도 이러저러한 이슈로 인해 GIS를 제대로 해내지는 못했습니다. 그때 알아봤던 튜토리얼 중 하나는 "Automating GIS Process"가 있었습니다. GPT의 도움을 받아 정리해 보면 아래와 같은 내용을 다루고 있습니다. 'Automating GIS Processes 20..

Ch-2 Multi-armed bandit Q(a) 파이썬 코드

Dec 10, 2023, 7 min read 오케이. 내 스타일대로 해보겠다. 강화학습 해보자 Table of Contents 1 K-armed Bandit problem 2 추정해보기 : Action-value Methods 3 다음 action을 선택해보자 K-armed Bandit problem § k-armed bandit problem은 슬롯 머신을 떠올리면 된다. 근데 팔이 k 개인 슬롯머신이다. 우리가 슬롯머신을 당기는 이유는 간단하다. 잭팟이 터졌으면 좋겠으면 하는 마음이다. 그걸 수학적으로는 기대 보상을 최대화한다라고 말한다. 기대보상이란 최초에 알 수 있는 것이 아닌 실험을 통해 도출해야 한다. 슬롯 머신의 팔이 k 개라 할때 각 팔을 당길때 기대보상은 각기 다르다. 이 각 기대보상을 ..

Coursera Programming Language Part B : Intro to racket

Week1 -Intro To Racket Nov 27, 2023, 6 min read 교수의 참 쉽죠라는 말처럼 그냥 재미있다 보고 있다가 슬슬 어려워지는것 같아 내용을 정리해서 넣어본다 1 ML에서 Racket으로 넘어가기 § 여러가지가 이유가 있겠지만 이제는 racket으로 넘어간다. 내 생각에는 dynamic type environment를 체험시켜주려는 의도인 것 같다. 인터넷을 좀 찾아봐도 Racket이라는 언어의 유용성은 그닥 찾아볼 수 없다. 프로그래밍에서 필요한 용어와 개념을 익히기 위한 것이라고 생각하면 편할 듯 싶다. 1.1 역사 § 이 아저씨는 Racket을 좀 좋아하는 모양이다. 간단한 역사는 이렇다고 한다. LISP라는 언어가 Scheme이 되고, Scheme이 Racket이 되었..

반응형