etc 51

Binary Search, Recursive Binary Search

1. Binary Search단순 Binary Search 코드이다.정렬된 배열에서 특정 값을 찾는 효율적인 알고리즘이다. 검색 범위를 절반씩 줄여나가면서 목표 값을 찾는다.l = 0, r = n-1으로 초기화한 다음에, 중간 값을 찾아서, 범위를 좁혀나간다.a[m] > x 인 경우, 즉 m의 배열값이 x보다 큰 경우 r = m-1로 설정한다. (0~m-1 탐색)a[m]   증명 (Proof by Invariant)invariant는 불변 법칙이다. invariant를 설정하고, invariant가 깨지지 않음을 통해 증명한다.a[i] = x 라면, i는 l과 r의 인덱스 범위 안에 무조건 있을 것이다. 이는 l과 r이 아무리 변해도, a[i] = x인 i는 l과 r의 인덱스 범위 안에 무조건 있기 ..

etc/알고리즘 2024.10.26

[SQL] 데이터분석가 많이 쓰는 완전 기초 쿼리 5탄 : 집계함수 count, min, max, sum, avg, decode, group by, having

https://www.youtube.com/watch?v=BSA0MhvbikA 본 글은 [SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리, 을 시청하고 정리한 글입니다. 집계 함수 COUNT, MIN, MAX, SUM, AVG 의 예시 SELECT statn_nm , count(*) AS 개수 , MIN(BEGIN_TIME) AS 첫출발시간 , MAX(BEGIN_TIME) AS 마지막출발시간 , SUM(NMPR_CNT) AS 총합 , SUM(NMPR_CNT) / COUNT(*) AS 평균1 , AVG(NMPR_CNT) AS 평균2 FROM dasql.tb_pbtrnsp WHERE statn_nm LIKE '%혜화%' GROUP BY statn_nm; 2개 이상의 컬럼에 대해, COUNT() 함수..

[SQL] 데이터분석가 많이 쓰는 완전 기초 쿼리 4탄 : row number, (dense) rank, ntile

https://www.youtube.com/watch?v=TkLIlVCFaLE&t=4s 본 글은 [SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리, 을 시청하고 정리한 글입니다. 분할하는 쿼리 PARTITION BY PARTITION BY 고객명 ORDER BY 방문일자 → 고객명으로 분할하고, 방문일자로 정렬하기 PARTITION BY 고객명, 구매항목 → 고객명으로 우선 분할하고, 구매항목으로 분할하기 PARTITION BY 고객명, 구매항목 ORDER BY 방문일자 DESC ROW_NUMBER() → 순서가 동차라면 랜덤으로 1번, 2번을 정함 ROW_NUMBER()의 예시 ROW_NUMBER () OVER (PARTITION BY 고객명 ORDER BY 방문일자) AS 순서 RANK ()..

[SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리 3탄 : 테이블 생성, 삭제, JOIN

https://www.youtube.com/watch?v=E-8kpSSLulU 본 글은 [SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리, 을 시청하고 정리한 글입니다. LEFT JOIN 왼쪽 테이블의 키 값을 기준으로, 오른쪽 테이블을 붙이는 것 RIGHT JOIN 오른쪽 테이블의 키 값을 기준으로, 왼쪽 테이블을 붙이는 것 INNER JOIN 두 테이블을 키 값을 기준으로 조인하여, 교집합을 만드는 것 FULL OUTER JOIN 합집합(둘 중의 하나의 키값만 있어도 조인) UNION 행을 기준으로 조인하기 때문에, 테이블 구성이 똑같아야 함 UNION ALL 중복 상관 없이, 행을 기준으로 조인하는 것 -- 테이블 생성 및 데이터 삽입 CREATE TABLE dasql.CUST_INFO (..

[SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리 2탄 : 시간 함수

https://www.youtube.com/watch?v=u8G5WAS8_hU 본 글은 [SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리, 을 시청하고 정리한 글입니다. 현재 시각 나타내기 오라클SQL (FROM 테이블명 DUAL은 가짜테이블) SELECT SYSDATE FROM DUAL; SELECT CURRENT_DATE FROM DUAL; SELECT CURRENT_TIMESTAMP FROM DUAL; 임팔라SQL SELECT NOW(); MSSQL SELECT GETDATE(); CHAR 타입을 시간 유형으로 바꾸는 방법 SELECT STD_MT , CONCAT(STD_MT, '01') AS 일자1 , TO_TIMESTAMP(STD_MT, '01'), 'yyyyMMdd') AS 일자2 ,..

[SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리 1탄

https://www.youtube.com/watch?v=XN4iXklAnQw 본 글은 [SQL] 데이터분석가 회사에서 많이 쓰는 완전 기초 쿼리, 을 시청하고 정리한 글입니다. FROM 절에는 데이터베이스명.테이블 명이 들어감 SELECT * FROM database_name.table_name IN 구문을 이용해, 단어가 2가지 이상 있는 경우 추출 SELECT * FROM dasql.tb_pbtrnsp WHERE statn_nm IN ('목동', '노원') LIKE 구문을 이용해, 원하는 조건의 문자가 있는 경우 추출 WHERE statn_nm LIKE '%입구' WHERE statn_nm LIKE '%대%' WHERE statn_nm LIKE '%종합%' OR statn_nm LIKE '%을지로%..