목록algorithm (98)
on my way

깊이 우선 탐색(DFS) 알고리즘: 이해와 응용DFS (Depth-First Search) 이해와 응용개요DFS(Depth-First Search)는 그래프 탐색 알고리즘 중 하나로, 깊이 우선 탐색이라고도 합니다.이 알고리즘은 한 노드를 시작점으로 깊이 들어가며 탐색하다가 더 이상 갈 수 없으면 돌아와 다른 경로를 탐색하는 방식입니다.DFS는 주로 경로 찾기, 사이클 탐지, 연결 요소 찾기 등의 문제에서 유용하게 사용됩니다.이번 포스팅에서는 DFS의 원리, 구현 방법, 활용 예제 등을 자세히 설명하겠습니다. DFS의 원리DFS는 다음과 같은 단계로 진행됩니다:초기화: 탐색을 시작할 노드를 스택(stack)에 추가하고 방문 표시를 합니다.탐색: 스택에서 노드를 꺼내어 해당 노드의 인접한 노드들을 모두 스..

그리디 알고리즘: 최적해를 찾아가는 방법그리디 알고리즘(Greedy Algorithm)은 현재 상황에서 가장 좋은 선택(예를들면 높은 수)만을 하는 알고리즘 기법입니다.이 알고리즘은 문제를 해결하는 과정에서 매 순간 최적이라고 생각되는 결정을 내리며, 이 과정을 통해 전체적인 최적해를 찾아갑니다.그리디 알고리즘은 단순하고 직관적이지만, 항상 최적해를 보장하지는 않습니다.그러나 많은 문제에서 그리디 알고리즘은 효율적이고 효과적인 해결책을 제공합니다. 그리디 알고리즘의 특징단계적 선택: 문제를 해결하는 과정에서 매 단계마다 가장 최적의 선택을 합니다.지역적 최적해: 각 단계에서의 선택이 전체 문제의 최적해를 보장하지는 않지만, 각 단계에서의 최적 선택을 통해 전체 문제의 해결을 시도합니다.비가역적 선택: 한..
스택, 큐, 우선순위 큐, 트리 - 자료구조 이해하기코딩 테스트를 준비할 때, 다양한 자료구조를 이해하는 것이 중요하다.이번에는 스택(Stack), 큐(Queue), 우선순위 큐(Priority Queue), 트리(Tree)에 대해 쉽게 설명하고, 예시 문제를 통해 더 자세히 알아볼게요.스택(Stack)개념 설명 스택은 물건을 쌓아 올리듯 데이터를 세로로 쌓는 자료구조입니다. 이 구조에서는 쌓인 물건을 아래에서부터 꺼낼 수 없고, 가장 위에 있는 물건부터 차례로 꺼낼 수 있어요.이를 'LIFO(Last In, First Out)'라고 하며, 마지막에 들어온 데이터가 가장 먼저 나가는 특성을 가지고 있습니다.특징Push: 데이터를 스택에 넣는 연산.Pop: 데이터를 스택에서 꺼내는 연산.Top/Peek: ..

처음 푼 코드SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d') AS OUT_DATE, CASE WHEN DATEDIFF(OUT_DATE,'2022-05-01') 0 THEN '출고대기' ELSE '출고미정' END AS 출고여부FROM FOOD_ORDERORDER BY ORDER_IDDATEDIFF 함수로 날짜를 비교함. NULL을 뒤에 처리함 개선 코드SELECT ORDER_ID, PRODUCT_ID, DATE_FORMAT(OUT_DATE,'%Y-%m-%d') AS OUT_DATE, CASE WHEN OUT_DATE IS NULL THEN '출고미정' WHEN OUT_..

SELECT B.CATEGORY, SUM(S.SALES) TOTAL_SALESFROM BOOK BJOIN BOOK_SALES SON B.BOOK_ID = S.BOOK_IDWHERE SALES_DATE LIKE '2022-01%'GROUP BY B.CATEGORYORDER BY B.CATEGORY 1월이 있는걸 못 읽음 문제 풀이GROUP BY B.CATEGORY는 동일한 CATEGORY 값을 가진 행들을 하나의 그룹으로 묶습니다.SUM(S.SALES)는 각 그룹의 SALES 값을 모두 합산합니다. 이때 SALES는 BOOK_SALES 테이블에서 가져온 값입니다.따라서, SUM(S.SALES)는 각 카테고리별 총 판매량을 계산합니다.예시조인된 데이터 (WHERE 조건 적용 후):BOOK_ID | CATEG..
파이썬에서 딕셔너리는 매우 유용한 데이터 구조 중 하나로, 키-값 쌍을 저장합니다.이는 해시 테이블을 기반으로 하여 매우 빠른 검색 속도를 제공합니다.코딩테스트에서 딕셔너리를 잘 활용하면 문제를 효율적으로 해결할 수 있습니다. 지금부터 파이썬 딕셔너리의 문법과 유용한 기능을 정리하겠습니다. 1. 딕셔너리 생성딕셔너리는 중괄호 {}를 사용하여 생성합니다. 다음은 몇 가지 생성 방법입니다.# 빈 딕셔너리 생성dict1 = {}# 초기 값으로 딕셔너리 생성dict2 = {'a': 1, 'b': 2, 'c': 3}# dict() 함수로 생성dict3 = dict(a=1, b=2, c=3)# 리스트를 이용하여 생성dict4 = dict([('a', 1), ('b', 2), ('c', 3)]) 2. 요소 접근 및 ..