본문 바로가기

전체 글

(167)
[소프트웨어 마에스트로] SW Maestro 14기 합격 후기 소프트웨어 마에스트로 14기에 최종합격했다! 대학교 3학년 때 소마를 처음 알게 되고 대학교 재학하는동안 꼭 합격하고 싶었다. 예전에 소마 12기에 지원했었는데 그 때는 2차 코딩테스트에서 떨어졌다. 이 때는 붙어야 겠다는 마음보다는 어떤 느낌으로 코딩테스트가 진행되는 지 궁금해 지원한 게 더 컸다. 12기 지원후기는 다음과 같다. https://kdongree.tistory.com/2 [SW마에스트로]소프트웨어 마에스트로 12기 지원 후기 작년말쯤에 동빈나님의 유튜브 영상을 보고 소프트웨어 마에스트로에 대해 알게되었다. 소프트웨어 마에스트로는 창의도전형 SW인재 육성으로 SW산업의 미래를 선도하는 정부지원 사업이다. 코 kdongree.tistory.com 소프트웨어 마에스트로를 준비하면서 어떻게 준비..
[Algorithm] Heap Sort(힙 정렬) Code def create_heap(a): hsize=len(a)-1 for i in reversed(range(1, hsize)): downheap(i, hsize) def downheap(i, size): while(2*i=a[k]): break a[i], a[k] = a[k], a[i] i=k def heapsort(a): N=len(a)-1 for i in range(N): a[1], a[N] = a[N], a[1] downheap(1,N-1) N-=1 a = [-1, 10, 4, 5, 1, 8, 6, 2, 7, 9, 3] create_heap(a) print(a) heapsort(a) print(a) 정리 이진 트리 사용 1. max heap 만들기 2. 첫번째 노드와 마지막 노드의 위치를 바..
[Algorithm] Quick Sort(퀵 정렬) Code def quick_sort(a, left, right): if(left
[Algorithm] Shell Sort(쉘 정렬) Code def shell_sort(a): n=len(a) gap=n//2 while(gap>=1): if(gap%2==0): gap+=1 for i in range(gap,n): j=i while(j>=gap and a[j-gap]>a[j]): a[j-gap], a[j] = a[j], a[j-gap] j-=gap print(' Gap=', gap, a) gap=gap//2 a = [10, 4, 5, 1, 8, 6, 2, 7, 9, 3] print(a) shell_sort(a) print(a) 정리 삽입정렬에 전처리 과정을 추가한 알고리즘 gap을 사용해 정렬된 간격을 줄인다. 시간복잡도 최악의 경우 O(n^2) 평균의 경우 O(n^1.5) - Hibbard의 간격 특징 간격을 어떻게 설정하냐에 따라 수..
[Algorithm] Bubble Sort(버블 정렬) Code Python def bubble_sort(a): for i in range(len(a)-1,0,-1): flag = False for j in range(i): if(a[j]>a[j+1]): a[j], a[j+1] = a[j+1], a[j] flag = True if not flag: break a = [10, 4, 5, 1, 8, 6, 2, 7, 9, 3] print(a) bubble_sort(a) print(a) C++ #include using namespace std; const int ARRAY_SIZE = 10; void bubble_sort(int a[]){ for(int i=ARRAY_SIZE-1; i>0; i--){ bool flag=false; for(int j=0; ja[j+..
[Algorithm] Insertion Sort(삽입 정렬) Code Python def insertion_sort(a): for i in range(1, len(a)): for j in range(i, 0, -1): if a[j-1] > a[j]: a[j], a[j-1] = a[j-1], a[j] a = [10, 4, 5, 1, 8, 6, 2, 7, 9, 3] print(a) insertion_sort(a) print(a) def insertion_sort2(a): for i in range(1, len(a)): j=i while(a[j-1]>a[j] and j!=0): a[j], a[j-1] = a[j-1], a[j] j-=1 a = [10, 4, 5, 1, 8, 6, 2, 7, 9, 3] print(a) insertion_sort(a) print(a) C++..
[Algorithm] Selection Sort(선택 정렬) Code python def selection_sort(a): for i in range(0, len(a)-1): minimum=i; for j in range(i, len(a)): if(a[minimum] > a[j]): minimum=j; a[i], a[minimum] = a[minimum], a[i] a = [10, 4, 5, 1, 8, 6, 2, 7, 9, 3] print(a) selection_sort(a) print(a) c++ #include using namespace std; const int ARRAY_SIZE = 10; void selection_sort(int a[]){ for(int i=0; i
[HACKERTON] Ne(o)rdinary 해커톤 후기 - CMC, UMC CMC에서 주최한 Ne(o)rdinary 해커톤이 9.24~9.25 무박 2일로 진행되었다. 참여 가능 대상은 CMC,UMC, 라이징 캠프, 알고리즘 캠프, 라이징 프로그래머 수료생 및 챌린저이다. 나는 저번학기에 UMC 2기를 수료했었기 때문에 참여가 가능했다. 나는 아이디어톤과 같은 비교적 가벼운 대회에는 참가해보았지만 해커톤은 참여해본 경험이 없었다. 그래서 이번에 UMC를 통해 개발경험도 쌓였겠다 해서 해커톤 경험해보기 위해 Ne(o)rdinary 해커톤에 참여했다. 해커톤에 내 생각보다 많은 사람이 오지는 않았다. 대략 40명 정도 참여한 것 같았다. 그래서 팀은 4팀으로 나뉘었고 한 팀당 8~12명 정도 배정되었다. 그 중 한 팀은 Android, 다른 한 팀은 IOS, 나머지 두 팀은 Rea..