일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 로스트아크
- 코딩테스트
- python
- 통계학
- 영화 api
- 백준
- 경사하강법
- Dehaze
- 딥러닝 실험 깃 버전관리
- C# 프로젝트
- 파이썬
- 딥러닝
- 자바
- 머신러닝
- 파이썬 경사하강법
- MLP
- DCP
- 인공지능
- 의료 ai 대학원 월급
- 대학원 월급
- 디자인패턴
- 정규화
- pandas
- 자바 영화 api
- API
- 활성화 함수
- 대학원 급여
- 자바 프로젝트
- 인공지능 깃 버전관리
- 디자인 패턴
- Today
- Total
목록Computer programming (33)
대학원 일기

음.. 깃 사용법보다 깃 버전관리를 먼저 올리는게 맞나 싶지만, 제 정리를 목적으로 하는거기 때문에, 먼저 정리하고 싶은 것부터 하겠습니다..! 하하 사실, 깃 사용법이나 그런 자잘한 애들은 다른 블로그나 유튭에 잘 설명되어 있어, 생략해도 되지 않을까 생각합니다 ㅎ(나중에 시간되면 깃 클론부터 풀리퀘, Merge까지 정리해보겠습니다) 제가 Git 버전 관리를 사용하기 전까지, 그냥 깃허브에 올리고 저장소 느낌으로 사용했었는데, AI에서 깃으로 버전관리를 하니 편한 것을 알아 정리해보고자 합니다! 본 포스팅에선, 깃 기본 사용법을 아는 것을 기준으로 작성하겠습니다 깃 버전관리에 대해 알려면 우선 Git의 단계를 알아야하고, 어디에서 어떻게 관리되는지를 알아야 합니다. Git의 단계는 크게 4가지 로 ..
개발자라면 필수로 알아야할 Git과 GitHub. 의미를 파악해보자면 다음과 같다. Git 개발을 진행하며 작성하는 소스코드가 업데이트 되는 버전을 기록해두고 관리할 수 있는 소스코드 버전 관리 시스템 GitHub Git으로 관리하는 프로젝트를 호스팅하고, 시간과 공간의 제약 없이 협업할 수 있는 온라인 서비스 Git이 버전 기록을 저장한다면, GitHub에서는 그 기록을 다른 사람과 함께 공유하며 협업할 수 있습니다. 로컬(Local)에서 작업한 내용을 Git이 저장해 두었다면, 그 기록을 온라인 작업공간인 GitHub에 올려 원격(Remote)으로도 작업할 수 있도록 합니다. https://github.com/ GitHub: Let’s build from here GitHub is where over..

클린 아키텍처 대학원을 가기 전, 프로그래밍의 구조와 설계에 대해 공부하고 싶어 선배의 추천(?)으로 인해 대표적인 클린 아키텍처를 읽어보게 되었다. 업로드는 챕터별로 할 예정이다. 클린 아키텍처를 소개하기 전, 당연한 사실이지만 모든 개발자는 코드를 잘 짜려고 한다. 이와는 다르게 초보 개발자들은 구조와 설계에 대한 지식은 없으므로 무작정 설계와 코드를 작성한다. 이러한 시스템은 나중에 업데이트나 유지보수하는데 드는 비용이 계속적으로 스노우볼처럼 증가한다. 이를 막기 위해서는 구조와 설계에 대해 알아야하고, 공부해야 한다. 내가 책을 보면서 눈에 띈 문장이 있었다. "현대의 대다수 개발자는 뼈 빠지게 일한다. 하지만, 그들의 뇌는 잠에 취해 있다. 훌륭하고 깔끔하게 잘 설계된 코드가 중요하다는 사실을 ..

힙 정렬 최대 힙 트리나 최소 힙트리를 구성해 정렬을 하는 방법 내림차순 정렬을 위해서는 최대 힙을 구성하고 오름차순 정렬을 위해서는 최소 힙을 구성하면 된다. 과정 정렬해야 할 n개의 요소들로 최대 힙(완전 이진 트리 형태)을 만든다. 그 다음으로 한 번에 하나씩 요소를 힙에서 꺼내서 배열의 뒤부터 저장하면 된다. 삭제되는 요소들(최대값부터 삭제)은 값이 감소되는 순서로 정렬되게 된다. 내림차순 힙정렬 과정 오름차순 힙정렬 과정 정렬 알고리즘 시간 복잡도 비교 Python Code def heap_sort(unsorted): n = len(unsorted) #최대 힙 만들기 #최소힙은 부등호만 반대로 바꿔주면 됨 for i in range(1, n): child = i while child != 0: ..

병합 정렬 비교 기반 정렬 알고리즘 병렬을 앞 부분과 뒷 부분으로 나누어 각각 정렬한 다음 병합하는 작업을 반복하여 정렬을 수행하는 알고리즘 안정한 정렬(Stable sort) 분할 정복 알고리즘 1945년 폰 노이만이 개발 과정 리스트의 길이가 0또는 1이면 이미 정렬된 것으로 본다. 그렇지 않은 경우에 다음 과정을 거친다. 정렬되지 않은 리스트를 절반으로 잘라 비슷한 크기의 두 부분 리스트로 나눈다. 각 부분 리스트를 재귀적으로 합병 정렬을 이용해 정렬한다. 두 부분 리스트를 다시 하나의 정렬된 리스트로 병합한다. 하나의 리스트를 두 개의 균등한 크기로 분할하고 분할된 부분 리스트를 정렬한 다음, 두 개의 정렬된 부분 리스트를 합하여 전체가 정렬된 리스트가 되게 하는 방법이다. 합병 정렬은 다음의 단..

퀵 정렬 정렬 알고리즘 중 가장 빠른 알고라즘 중의 하나 찰스 앤터니 리처드 호어(C.A.R Hoare)가 명명 각 그룹에 피벗(pivot) 설정과 그룹 나눔을 반복하며 모든 그룹이 1명이 되면 정렬을 마침 피벗(pivot): 그룹을 나누는 기준을 말하며, 피벗은 마음대로 선택할 수 있고, 왼쪽 그룹과 온쪽 그룹 어디에 들어가도 상관없음 분할 정복 알고리즘이므로 재귀 호출을 사용하여 구현 분할 정복 알고리즘: 문제를 작은 2개의 문제로 분리하고 각각을 해결한 다음, 결과를 모아서 원래의 문제를 해결하는 전략이다. 불안정 정렬에 속한다. 과정 리스트 안에 있는 한 요소를 선택한다. (요소 = pivot) 피벗을 기준으로 피벗보다 작은 요소들은 모두 피벗의 왼쪽으로 옮겨지고 피벗보다 큰 요소들은 모두 피벗의..

셸 정렬 단순 삽입 정렬의 장점을 살리고, 단점을 보완한 정렬 알고리즘 정렬할 배열의 요소를 그룹으로 나눠 각 그룹별로 단순 삽입 정렬을 수행하고, 그 그룹을 합치면서 정렬을 반복하여 요소의 이동 횟수를 줄이는 방법 셸 정렬은 개념을 이해하고 구현하기는 쉬우나 시간복잡도 분석은 조금 복잡하다. 장점 정렬을 맞쳤거나 정렬을 마친 상태에 가까워지면 정렬 속도가 매우 빨라진다. 단점 삽입할 위치가 멀리 떨어져 있으면 이동해야 하는 횟수가 많아진다. 셸 정렬 알고리즘의 예제 정렬 알고리즘 시간 복잡도 비교 Python Code def Shellsort(arr): h = 1 while h 0: for i in range(h,len(arr..

단순 선택 정렬 단순 선택 정렬은 가장 작은 요소부터 선택하여 알맞은 위치에 옮겨 정렬하는 알고리즘이다. 서로 떨어진 요소를 교환하기 때문에 안정적이지 않다. 시간 복잡도: $O(n^{2})$ Python Code def selectionSort(x): length = len(x) for i in range(length-1): indexMin = i for j in range(i+1, length): if x[indexMin] > x[j]: indexMin = j x[i], x[indexMin] = x[indexMin], x[i] return x Java Code void selectionSort(int[] list) { int indexMin, temp; for (int i = 0; i < list.l..