학교 과정을 복습하려고 포스팅 하게 되었습니다.
알고리즘이 필요한 이유
1.4 차수
기초적인 것들도 주석문으로 상시 설명해야 나중에 완벽히 나의 것이 됌
0주차 시간복잡도와 Big-O 표기법
6.26 13시 알고리즘 스터디 (1회차)정리 , 형변환
투 포인터 테크닉에 대해 이해하기 쉽게 포스팅 하였습니다.1차원 배열에서 각자 다른 원소를 가리키는 2개의 포인터를 사용하여 목표값을 구할때 사용합니다.완전탐색 O(n^2) 솔루션을 --> 선형 O(n)으로 성능 향상이 가능할 수 있습니다.
삽입과 삭제 연산이 LIFO (Last In First Out) --> 후입 선출 로 이루어진 자료구조입니다.스택에 들어가면, top이 새 값을 가리킴.스택에서 값을 빼낼 때, pop은 top이 가리키는 값을 스택에서 빼내옴. --> 후입선출로 진행됨
버블정렬이던, 선택정렬이던 중요한 포인트는 시간복잡도 입니다.구현할 때엔 항상 최악의 경우를 가정 및 생각해서 구현하여야 합니다.
23.07.03 알고리즘 스터디
23.07.13 스터디 대수/기수 정렬이라고도 부르며,
23.07.13 스터디, DFS 알고리즘 학습 트리나 그래프에서 사용되는 탐색 알고리즘입니다. 이 방법은 시작 정점에서 시작하여 각 분기점에 대해 최대한 깊이 들어가면서 탐색하고, 더 이상 진행할 수 없게 되면 이전 분기점으로 돌아와서 다른 경로를 탐색하는 방식입니다.
23.07.13 - BFS 와 DFS의 차이점, BFS는 그래프에서 모든 정점을 방문하는 방법 중 하나로, 시작 정점에서부터 인접한 정점들을 모두 방문한 후에 방문한 정점을 기준으로 다시 인접한 정점들을 차례로 방문하는 순환이 진행되는 방식
23.07.13 스터디 정리 , 데이터가 정렬돼 있는 상태에서 원하는 값을 찾아내는 알고리즘입니다. 대상 데이터의 중앙값과 찾고자 하는 값을 비교해 데이터의 크기를 절반씩 줄이면서 대상을 찾는 것입니다.
알고리즘 시간복잡도에 대해 많이 모르시고, 문제를 푸시는 것을 알게되어 이 기회에 되짚고 가면 좋겠다는 취지로 제대로 정리해보았습니다.허접한 글이지만 미약하게나마 도움이 되면 좋겠습니다.
탐욕적인 알고리즘, 그리디 알고리즘은 현재 상태에서 볼 수 있는 선택지 중에 최선의 선택을 하는 알고리즘입니다.그리디 알고리즘은 동적 계획법 dp 보다 구현하기 쉽고, 시간복잡도가 우수합니다.But, 항상 최적의 해를 보장하지 못한다는 단점도 존재합니다.
두 수의 최대공약수를 구하는 알고리즘입니다.보통 수리영역을 공부하셨을때, 소인수분해를 이용하여 공통된 소수들의 곱으로 표현하였지만, 컴퓨터에서는 해당 방법으로 구하는 것보다 좀 더 간결하게 유클리드 호제법으로 표현가능합니다.MOD 연산이 최대 공약수를 구하는 핵심이라서
알고리즘에서 사용되는 그래프의 큰 특징들만 정리하였다. 이후 포스팅은 그래프에 해당하는 각 그래프에 대해 자세히 알아볼 예정이다.
소수는 1과 자기자신외에 약수가 존재하지 않는 수입니다.소수 구하기는 에라토스테네스의 체를 사용합니다.구하고자 하는 소수의 범위만큼 1차원 배열을 생성2부터 시작하고, 현재 숫자가 지워지지 않을 때는 현재 선택된 숫자의 배수에 해당하는 수를 배열에서 끝까지 탐색하면서