전체 글

데이터 엔지니어를 희망하는 개발자 지망생
SQL/프로그래머스 MySQL with code

프로그래머스 MySQL : [lv.4] 주문량이 많은 아이스크림들 조회하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. UNION ALL 두개의 테이블을 UNION ALL로 합친 후 GROUP BY로 묶어서 해결할 수 있다. SELECT FLAVOR FROM ( SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM JULY GROUP BY FLAVOR UNION ALL SELECT FLAVOR, SUM(TOTAL_ORDER) AS TOTAL_ORDER FROM FIRST_HALF GROUP BY FLAVOR ) A GROUP BY FLAVOR ORDER BY SUM(TOTAL_OR..

Algorithem/프로그래머스 PS with code

프로그래머스 MySQL : [lv.1] 자동차 대여 기록에서 장기/단기 대여 구분하기

DATEDIFF, CASE, MONTH 날짜의 차를 구할때는 DATEDIFF로 구해야한다. 단순히 빼버리면 10진수 뺄셈으로 결과가 나온다. rent_type의 경우 CASE문으로 처리해주고, 9월을 select 하는건 MONTH로 해결할 수 있다. 쿼리문 SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE, '%Y-%m-%d') AS START_DATE, DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE, CASE WHEN DATEDIFF(end_date, start_date)+1 >= 30 THEN '장기 대여' ELSE '단기 대여' END AS RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HIST..

Algorithem/백준 PS with code

(python) 백준 #2473 - [G3] 세 용액 : 이진탐색/투포인터

2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 1. O(N*N*logN) : 2개 조합 완탐+바이너리서치 3개의 용액을 고르는 방법을 찾아야한다. 2개의 용액을 완전 탐색으로 고르고, 세 용액의 합이 0에 가장 가까워지도록 하는 마지막 용액을 찾는 방식을 채택했다. 2개의 용액을 완탐으로 찾는데 O(N*N), 마지막 용액을 binary search으로 찾는데 O(logN)이 걸린다. (이진 탐색의 경우 재귀로 푼 경우 시간초과, 반복문으로 푼 경우 성공이었다. 반복문으로 쉽게 짤 수 ..

Languages/Python

[pip freeze] pip freeze시에 버전 말고 @ 경로가 찍히는 이슈

pip freeze creates some weird path instead of the package version I am working on developing a python package. I use pip freeze > requirements.txt to add the required package into the requirement.txt file. However, I realized that some of the packages, instead... stackoverflow.com 기본 pip freeze 명령어 pip freeze > requirements.txt 이렇게 pip freeze를 했을때 버전이 안찍히고 이상한 경로가 찍히는 경우가 있습니다. direct reference ..

Languages/Python

[set] set에서 삽입시에 벌어지는 key 테이블 리사이징

파이썬 set object의 C 구현 코드 : https://github.com/python/cpython/blob/main/Objects/setobject.c 일단.. cpython 의 set object의 c코드만해도 2500줄이 넘어간다는 사실에 경악했습니다.. 이렇게 복잡한 자료구조를 나는 여태 이렇게 편하게 쓰고 있었구나...ㄷㄷ 아무튼, set에 들어가는 아이템이 너무 많아지면 set_table_resize 를 통해서 key 리스트를 더 많이 할당한 메모리로 싹 옮긴다고 합니다. 이 임계점에서 순간적으로 연산량이 많아지겠네요. 언제 사이즈가 바뀌는지 출력해봤습니다. 또 pop으로 아이템을 제거하면 다시 줄어드는지도 확인해봤습니다. A = set() now_size = A.__sizeof__()..

Languages/Python

[getsizeof] 객체가 차지하는 byte 출력하기?

(제목에 물음표를 달게 된 이유가 있답니다!) 자료구조의 뒷단에서 벌어지는 일들이 궁금할때는 len 말고 객체에 할당된 메모리를 확인해볼 필요가 있습니다. list와 set에서 remove를 수행할 때 전 당연히 "set이 훨씬 빠를거야. list는 제거 후에 바로 배열을 재설정해줘야하고, set은 hash를 쓰니까 재조정이 더 짧지 않겠어?" 라는 생각이었는데, 의외로 별 차이가 없더라구요. 그래서 각 객체에 할당되는 메모리를 트래킹해보기 위해서 찾아보니 sys에 getsizeof 라는 함수가 있었습니다. sys.getsizeof() import sys A = [] print(sys.getsizeof(A)) docs sys — System-specific parameters and functions T..

jamong5
JAMONG5