본문 바로가기

프로그래밍

(36)
알고리즘 연습 프로그래머스 스택 - 큐 기능개발 문제 풀이 사용 언어: python3 https://programmers.co.kr/learn/courses/30/lessons/42586?language=python3 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 글로 쓴 풀이 선입 선출의 queue 구조를 활용 하면 쉽게 풀릴 것 같다. # 제일 처음 작성한코드 목적 달성 위주 def solution(progresses, speeds): queue = [] answer = [] while True: if len(progresses) == 0: break; ..
[뒤늦게 시작한 알고리즘] 1편 HEAP! heap이란 최댓값 또는 최솟값을 찾아내는 연산을 빠르게 하기 위해서 고안된, 완전 2진 트리를 기본으로한 자료구조 이다. heap은 규칙에 따라서 크게 max heap과 min heap으로 나눌 수 있는데, max heap: 부모 노드는 항상 자식 노드보다 크거나 같아야 함. min heap: 부모 노드는 항상 자식 노드보다 작거나 같아야 함. 이고, 힙 전체를 통틀어 이 규칙은 꼭 유지 되어야 해. min heap에 대해서 얘기를 해보자면, root에는 가장 작은 값이 들어가고, 그 아래로 완전 2진 트리의 형식으로 값들이 채워지게 되어있어. 각각의 노드는 자기 부모 노드보다 작은 값을 가질 수 없게 되어 있지, 즉 자기 부모보다만 작은 값을 가진다면 상위에 있는 다른 노드보다 작은 값을 가질 수도 ..
[TYPE SCRIPT] MAP 함수 오류 (해결책) This expression is not callable. Each member of the union type .. 어쩌구 하는 오류가 발생할 경우가 있을 것이다. 아마도 MAP함수를 DYNAMIC하게? 쓸때 자주 발생할 텐데, 발생하는 경우는 대부분 즉, 배열의 타입을 명확하게 명시하지 않을때 발생한다. 물론 아래의 경우에 number[] 또는 string[]이라고 명시를 했지만, 조금 더 명시적으로 표시해야 한다. const a number[] | string[] = [] a.map((item) => console.log(item)) 이처럼 말이다. const a = (string | number)[] = [] a.map((item)=>console.log(item)) 그러나 사실 이렇게 단편적으로..
[typescript] enum은 이상한 num이다. 21.08.25 오늘 업무중에 typescript enum의 이상한? 점을 발견했다. enum GENDER { MAN = 1, WOMAN = 2, KIDS = 3 } enum DRINKS { SOJU = '소주' BEER = '맥주' } 위의 코드를 보자, GENDER.MAN = 1인것은 자명하다. 그런데 GENDER[1] = MAN 이것은 성립이 될까? 결론부터 말하면 YES이다. 그래서 나는 ENUM을 이상한 넘이라고 표현했다. 더 이상한 것은 DRINKS['소주'] = SOJU는 아니라는 것 이다. 왜 이런 현상이 발생하는지 알아보기 위해서 공식 문서를 살펴 보도록 하겠다. https://www.typescriptlang.org/ko/docs/handbook/enums.html Handbook - ..
sql vs nosql -- 내가 보려고 쓰는 글-- sql 에 대해서는 이미 어느정도 알고 있기 때문에 nosql에 대해서 쓰는 글이다. refernce https://esckey.tistory.com/107 NoSQL이란 무엇인가? 인터넷 대중화에 이어 수년 전부터 SNS 서비스가 활성화되면서 컴퓨팅 시스템에도 변화가 찾아오기 시작했다. NoSQL의 등장 배경 예전에 컴퓨팅 시스템은 기업 업무를 자동화하고 효율화하는 데 esckey.tistory.com 핵심 - key: value 값의 형태로 비정형 데이터를 저장하기에 용의함. 발전하게 된 이유 sns의 발달로 단순하지만 엄청나게 많은 양의 데이터가 쌓이게 됨. 기존의 rdbms의 저장 방식으로는 감당할 수 없을 만큼의 데이터로 인해서 새로운 방식의 저장 방식이 필요했다...
go colly 내가 경험한 최고의 스크래핑 프레임워크 안녕하세요. k 입니다. python의 scrapy를 사용하려 하다가 높은 진입 장벽에 막혔습니다. (귀찮아서 그런거 아님) requests와 beautifulsoup보다 더 쉽고 빠르게 스크래퍼를 만들 방법을 고민하다가 golang에 colly 라는 프레임워크가 있다는 말을 발견하고 사용해본 후기를 남기고자 합니다. 사용법이 워낙 간단해서 그런지 한글로 된 자료가 거의 없어서 고생 했었는데 이 글을 읽는 분들은 그러지 않기를 바랍니다. ㅎㅎ 0. 공식 문서 공식 문서에 예제도 많고 정말 잘 정리되어 있습니다. http://go-colly.org/docs/ Documentation | Colly Scraping framework for extracting the data you need from webs..
python scrapy 사용해보기 -1 (미완성) 안녕하세요. 오늘은 python의 웹 스크래핑 라이브러리인 scrapy를 사용해 보고자 합니다. 실습 환경은 window10, python 3.9.5, vscode 입니다. 오늘의 실습은 https://docs.scrapy.org/en/latest/intro/overview.html#scrapy-at-a-glance 스크래피의 공식 문서를 보고 진행 합니다. 1. 프로젝트 시작하기 터미널에 다음과 같은 명령어를 입력하면 scrapy project가 만들어 집니다. scrapy startproject tutorial 위와 같은 구조로 프로젝트가 생성 됩니다. 그 후에 tutorial/tutorial/에 scrapy 파일들을 작성하면 됩니다. 아래 코드는 공식 문서에 있는 예제 코드입니다. import sc..
fast api 파이썬의 고성능 프레임워크 퇴근 후에, 이것 저것 하나씩 건드려 보고 있던차에 아주 좋은 프레임워크를 발견했습니다. 바로 fast api라는 프레임 워크 입니다. 제가 생각하는 (저 아직 아는 것 많이 없습니다) 장점들을 공유하고자 합니다. 1. api 문서가 자동으로 생성됩니다. 저는 nest js + graphql으로 api 서버 개발을 시작했었는데, 지금의 회사에서는 django + rest api로 개발을 진행하고 있습니다. graphql로 개발을 진행할때에는 api 문서를 자동으로 생성 해 주어서 프론트 개발자와의 협업이 정말 편리했는데 django등의 대부분의 프레임워크는 api 문서를 생성해주지 않습니다. 따라서 프론트엔드 개발자와의 원활한 소통을 위해서 조금 더 많은 시간을 사용해야 했습니다. 그런데 fast api..