반응형

프로그래머스 16

예고생의 IT대학 도전기10 - 알고리즘 (내 인생을 바꾼 과목)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 비슷한 차트 검색기 비슷한 차트 검색기전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요?www.similarchart.com예고생의 IT대학 도전기 개요 20살까지 중학교 수학도 모르던 예고생의 IT대학 도전기 Start! (과목별 정리)사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간similarchart.com알고리즘2학년 2학기 전공필수과목인 알고리즘입니다. (2022년 수강)  성..

세그먼트 트리 - 백준 2042 (22.8.5)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 세그먼트 트리란 세그먼트 트리(Segment Tree)는 여러 개의 데이터가 존재할 때 특정 구간의 합(최솟값, 최댓값, 곱 등)을 구하는 데 사용하는 자료구조이다. 특정 구간의 합을 미리 구해둔 후, 요청이 있을 때 이미 구한 합을 활용하여 답을 구하는 것이다. 트리 종류 중에 하나로 이진트리의 형태이며, 특정 구간의 합을 빠르게(O(logN)) 구할 수 있다. 세그먼트 트리 구성 구간 합을 구한 이진 트..

자료구조 2024.02.13

강한 연결 요소(타잔 알고리즘) - 백준 2150 (22.7.27)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 강한 연결 요소란 방향성이 존재하는 유향 그래프에서 모든 정점이 다른 모든 정점들에 대하여 방문할 수 있는 경우 즉, 어떤 두 정점 간의 경로가 존재하면 그 집단이 강하게 연결되었다고 표현한다. 이것을 강한 연결 요소(Strongly Connected Component) 혹은 강한 결합 요소라고 말한다. 즉, 그래프의 사이클에서 같은 사이클 내에 존재하는 정점들은 같은 SCC에 속한다 할 수 있다. 이 그래..

알고리즘 2024.02.13

KMP 알고리즘 - 백준 1786 (22.7.21)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com KMP 알고리즘이란 KMP알고리즘은 텍스트 내(본문)에서 특정 문자열, 패턴("테이프")을 찾는 문자열 검색을 할 때 사용하는 알고리즘이다. 만든 사람이름이 Knuth, Morris, Prett이기 때문에 앞글자를 하나씩 따서 KMP알고리즘이라고 한다. 일반적으로 떠올리는 방법인 순차적 탐색보다 훨씬 효율적이다. KMP알고리즘의 시간 복잡도는 O(N+M)으로 순차적 탐색방법 O(NM) 보다 매우 빠르다. 먼..

알고리즘 2024.02.13

벨만 포드 알고리즘 - 백준 11657 (22.7.17)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 벨만 포드 알고리즘이란 벨만 포드 알고리즘(Bellman-Ford Algorithm)은 한 노드에서 다른 노드까지의 최단 거리를 구하는 알고리즘이다. 다익스트라 알고리즘이 모든 가중치가 양수인 경우에만 사용할 수 있는 반면에 벨만-포드 알고리즘은 노드 간의 간선 가중치가 음수인 경우에도 사용할 수 있다. 벨만 포드 알고리즘의 동작 시작 노드를 설정한다. 시작 노드에서 각 다른 노드의 거리 값을 무한대로 설정..

알고리즘 2024.02.13

투 포인터 알고리즘 - 백준 1806 (22.6.30)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 투 포인터 알고리즘 1차원 배열이 있고, 이 배열에서 각자 다른 원소를 가리키고 있는 2개의 포인터를 조작해 가면서 답을 얻는 알고리즘이다. 백준 1806번 문제 백준 1806번 문제를 풀면서 알아보자면, 포인터 2개를 준비한다. 시작과 끝을 알 수 있도록 start, end 라고 한다. 맨 처음에는 start = end = 0이며, 항상 start

알고리즘 2024.02.13

서로소 집합과 크루스칼 알고리즘 - 백준 1197 (22.6.29)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 서로소 집합 수학에서 서로소 집합이란 공통 원소가 없는 두 집합을 의미한다. 예를 들어 집합 {1,2}와 집합 {3,4}는 서로소 관계이다. 반면에 집합 {1,2}와 집합 {2,3}은 2라는 원소가 두 집합에 공통적으로 포함되어 있기 때문에 서로소 관계가 아니다. 서로소 집합 자료구조 서로소 집합 자료구조란 서로소 부분 집합들로 나누어진 원소들의 데이터를 처리하기 위한 자료구조이다. union, find연산..

알고리즘 2024.02.13

플로이드-워셜 알고리즘 - 백준 11404 (22.6.19)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 플로이드 워셜 알고리즘이란 플로이드-워셜(Floyd-Warshall) 알고리즘은 한 번 실행하여 모든 노드 간 최단 경로를 구할 수 있는 알고리즘이다. 다익스트라 알고리즘과 비교를 하면서 설명하자면, 다익스트라 알고리즘은 단계마다 최단 거리를 가지는 노드를 하나씩 반복적으로 선택한다. 플로이드 알고리즘 또한 단계마다 '거쳐 가는 노드'를 기준으로 알고리즘을 수행한다. 하지만 매번 최단 거리를 가지는 노드를 ..

알고리즘 2024.02.13

다익스트라 알고리즘 - 백준 1753 (22.6.18)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 다익스트라 알고리즘이란 음의 가중치가 없는 그래프의 한 정점(Vertex)에서 모든 정점까지의 최단거리를 각각 구하는 알고리즘이다. 그리디와 동적 계획법을 활용한 대표적인 최단 경로 탐색 알고리즘이다. 흔히 인공위성 GPS 소프트웨어에 등에서 가장 많이 사용된다. 다익스트라 알고리즘이 동적 계획법 문제인 이유는 최단 거리는 여러 개의 최단 거리로 이루어져 있기 때문이다. 하나의 최단 거리를 구할 때, 그 이..

알고리즘 2024.02.13

너비 우선 탐색(BFS) - 백준 6593 (22.6.16)

사용자가 특정 차트를 고르면, 전 종목의 과거(10년) 차트들을 모두 탐색하여 가장 유사한 차트 10개를 골라 사용자에게 보여줍니다. 웹프로젝트 링크 비슷한 차트 검색기 전 종목의 최근 10년간 모든 차트를 탐색합니다. 내 종목의 차트는 과연 상승하는 차트일까요? www.similarchart.com 너비 우선 탐색(BFS, Breadth-First Search)이란 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법이다. 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법이다. 즉, 깊게(deep) 탐색하기 전에 넓게(wide) 탐색하는 것이다. 사용하는 경우 두 노드 사이의 최단 경로 구하기 임의의 경로 찾기 특징 어떤 노드..

알고리즘 2024.02.13
반응형