전체 글

남들의 귀감이 될때까지!!
·AI/논문분석
Attention Is All You Need -논문리뷰 분석 RNN과 LSTM이란? RNN: 학습했던 데이터를 그 다음 순서에 정답데이터로 사용해 (누적 학습의 개념) 학습을 이어간다. 그래서 시계열 + 동적인 특성을 갖는 데이터에게 적합하다. 즉, 다시 역전파(Backpropagation) 과정을 통해 순환적으로 학습을 진행합니다. LSTM은 본격적인 연산 전에 장기 / 단기 정보를 담은 메모리를 분류하고, 이 메모리와 이벤트를 기반으로 각각 Long term memory, Short term memory에 적합한 내용을 따로따로 학습시킵니다. 아래의 그림에서 더욱 쉽게 이해할 수 있습니다. 들어가기 앞서 내용 설명 NLP의 기반이 되는 RNN과 LSTM이 나온 이후에 Seq2Seq가 나온 후 현대 ..
·Algorithm/Concept
Shell Sort란? Insertion Sort를 기반으로 합니다. 서로 멀리 떨어져 있는 순자들을 정렬(insertion sort로)하기 시작하여 점점 두 숫자들 사이의 거리(gap)을 좁혀서 정렬합니다. 최종적으로 gap=1이 되면, 원래의 insertion sort를 실행하는 것과 동일합니다. Not stable하며 In-place 알고리즘 입니다. Gap, Gap Sequence Gap 정렬할 원소들이 떨어져 있는 거리입니다. 처음에는 큰 gap을 사용하여 시작하지만, 점점 작게 만들고, 최종적으로는 1이됩니다. Gap Sequence 주어진 시작 숫자부터 gap만큼 떨어진 모든 숫자들의 집합입니다. 같은 gap sequence에 속하는 숫자들을 insertion sort로 정렬합니다. Pass..
·Algorithm/Concept
Insertion Sort란? Selection Sort처럼 정렬 중간 과정에 데이터가 두 부분으로 나눠 집니다. Stable하며 In-place한 정렬입니다. 왼쪽에는 정렬이 된 데이터입니다. 오른쪽은 정렬이 되지 않은 데이터입니다. 오른쪽 데이터의 제일 앞 숫자를 그 왼쪽의 정렬된 데이터의 제 위치에 삽입합니다. 중간의 모든 데이터는 오른쪽으로 한 칸씩 이동합니다. Insertion Sort sorting 과정 Insertion Sort 코드 #include using namespace std; #define MAX_SIZE 1000 void insertionSort(int a[], int n); int main() { int numTestCases; scanf("%d", &numTestCases);..
·Algorithm/Concept
Comb Sort란? Bubble Sort에서 거북이(turtle) 데이터를 줄이고자 고안해낸 알고리즘입니다. 토끼(rabbit) 데이터는 bubble sort에서 문제가 되지 않습니다. Not stable하면서 In-place한 Algorithm입니다. Bubble Sort에서는 인접한 두 데이터의 크기를 비교합니다. 비교하는 두 데이터의 거리를 gap이라 합니다. Bubble sort에서는 바로 인접한 데이터를 비교하기때문에 gap이 1입니다. Comb sort gap의 크기를 1보다 크게합니다. bubble sort의 각 pass가 진행됨에 따라 gap의 크기를 줄여갑니다. "shrink factor"를 k 만큼 줄여갑니다 gap의 크기 : $$ [\frac{n}{k},\frac{n}{k^2}, \..
·Algorithm/Concept
Selection Sort란? 기본 아이디어 정렬 중간 과정에서 데이터가 두 부분으로 나누어집니다. 왼쪽 데이터는 정렬이 된 데이터 오른쪽 데이터는 정렬이 되지 않은 데이터 Not stable한 알고리즘이면서 In place 알고리즘입니다. 오른쪽 데이터에서 제일 작은 데이터를 검색하여 선택하고 오른쪽 데이터의 제일 앞 숫자를 그 숫자랑 교환합니다. 정렬 과정 Selection Sort 코드 #include #include #define MAX_SIZE 1000 using namespace std; void selectionSort(int a[], int n); int main() { int numTestCases; scanf("%d", &numTestCases); for (int i = 0; i < n..
·Algorithm/Concept
Bubble Sort Algorithm 정렬 알고리즘 중 기본적인 알고리즘 중 하나로 인접한 두 숫자를 비교하여 두 수의 정렬 순서가 맞지 않은 경우에 swap을 하는 알고리즘입니다. 마치 깊은 물속의 큰 물방울이 표면으로 떠 오르는 것과 같이 큰 데이터들이 배열의 왼쪽에서 오른쪽으로 이동하기 대문에 bubble sort라고 부른다고 합니다. 해당 알고리즘은 stable한 Algorithm이면서, In-Place한 Algorithm입니다. Stable: 정렬 이후 입력된 순서 그래도 유지가 되는가? In-place: 데이터를 저장하는 메모리 이외는 상수 크기의 메모리만 필요하는가? 평균적인 시간 복잡도는 O(n^2)입니다. Pass 맨 왼쪽 인접한 두 숫자를 비교하기 시작합니다 맨 끝 인접한 두 숫자를 ..
시작하며 먼저 Selenium으로 Web Crawling을 진행하는 과정에 있어 이번 학기 UROP에 감정사전이란 주제를 정하며 리뷰 데이터를 Crawling하여 전처리를 하는 목적이 있어 Selenium 으로 crawling을 진행해봤습니다. 공부하며 배운 내용들을 적어가는 과정이라 부정확할 수도 있다는 점 양해하며 봐주시면 감사하겠습니다. Selenium이란? selenium은 웹사이트 테스트를 위한 도구로 사용되어 브라우저 동작을 자동화할 수 있습니다. 셀레니움을 이용하는 웹크롤링 방식은 프로그래밍으로 브라우저 동작을 제어해서 마치 사람이 이용하는 것 같이 웹페이지를 요청하고 응답을 받아올 수 있습니다. 환경세팅 먼저 Selenium 을 사용하기 위해선 드라이버가 필요합니다. 저는 Chrome을 기..
이중우선순위큐 문제 설명 이중 우선순위 큐는 다음 연산을 할 수 있는 자료구조를 말합니다. 명령어 수신 탑(높이) I 숫자 큐에 주어진 숫자를 삽입합니다. D 1 큐에서 최댓값을 삭제합니다. D -1 큐에서 최솟값을 삭제합니다. 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현해주세요. 제한사항 operations는 길이가 1 이상 1,000,000 이하인 문자열 배열입니다. operations의 원소는 큐가 수행할 연산을 나타냅니다. 원소는 “명령어 데이터” 형식으로 주어집니다.- 최댓값/최솟값을 삭제하는 연산에서 최댓값/최솟값이 둘 이상인 경우..
땅따먹기 문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 solution 함수를 완성해 주세요. 위 예의 경우, 1행의 네..
Shine_sunho
How to study for us