반응형
- [Algorithm log] MergeSortalpha brainmergeSort(병합 정렬)는 배열을 나누어가면서 그룹별로 정렬한 후 다시 합치는 방식으로 정렬한다. divide and conquer라는 전략을 사용하는 대표적인 정렬이다. ▼ 분할한 후 비교하면서 정렬시킨다. 이 부분이 중요한 부분인데, L과 R로 나누어 비교하면서 가장 밑에서 모두 합친다. 마치 토너먼트를 하는것 처럼 말이다. ▼ code 개인적으로 병합정렬의 코드를 이해하는데 참 오래 걸렸다. 한, 1년 정도 걸린 것 같다. 아니, 병합 정렬을 이해하는 것이 오래 걸린 것이 아니라 재귀 함수를 이해하는데 걸린 시간이라고 봐도 될 것 같다. function mergeSort(array){ if(array.length
- 2020-06-15 14:32:50
- [Algorithm log] InsertionSortalpha brain삽입 정렬은 가장 처음 요소는 정렬이 되어있다고 생각하고 다음 요소부터 하나씩 비교하면서 정렬하는 방법이다. ..... 이걸 또 정렬될 때까지 하면 된다. 삽입 정렬에서 중요한 것은 위치를 찾아 들어갈 때 요소들을 한 칸씩 뒤로 밀어줘야 한다. swap의 방식이 아니기 때문이다. 그래서 정렬된 요소들에 대해 뒤에서 부터 비교를 해준 후 한 칸씩 당기면서 찾아들어간다. 반복해서 들어갈 위치를 찾는다. 전체 사이클은 첫 번째 요소를 제외한(첫 번째 요소는 정렬된요소로 간주하니까!) 전체요소의 길이만큼 돌 것이고 한 사이클당 요소는 앞에 정렬된 요소의 길이만큼 돌아야 할것이다. code function insertionSort(array){ for(let i=1; i=0; j--){ // 한 사이클 // 정렬..
- 2020-06-12 17:10:14
- [Algorithm log] SelectionSortalpha brainselectionSort는 말 그대로 선택해서 정렬한다. 작은 것을 찾아서 앞으로 보낸다. 이것이 전부다. 이 걸 또 정렬될 때까지 계속하는 거다. 새로운 배열을 만들어 가장 작은 값을 하나씩 넣어서 줄 수 도 있겠고, 원본 배열을 변경해서 하는 방법이 있을 수도 있겠다. 나는 원본 배열을 변경하는 방식으로 진행을 하려 한다. 역시 이번에도 반복문을 어떻게 구성해야 할지가 제일 중요하다. 일단 전체 요소만큼 에 사이클이 나올 것이고, 한 사이클마다 최솟값을 찾아야 한다. 또한 한 사이클을 돌게 되면 맨 앞은 제일 작은 수가 된다. code function selectionSort(array){ for(let i=0; i
- 2020-06-12 16:22:41
- [Algorithm log] BubbleSortalpha brainbubbleSort는 인접한 두 요소를 가지고 비교해서 정렬하는 정렬 알고리즘이다. ... 한 사이클을 돌면 이렇게 가장 큰 요소가 제일 뒤로 간다. 또 다음 싸이클을 돌면 요소는 10, 12, 13, 15, 16, 20으로 정렬이 되어있을 것이다. 이걸 정렬될 때까지 계속하는 것이다. 개인적으로 이런 정렬 알고리즘을 풀 때 반복문을 어떻게 구성하느냐가 핵심인 것 같다. 나는 항상 이론으로는 이해가 어렵지 않은데 코드로 옮기려고만 하면 너무 어려웠다. 지금도 뭐 다르진 않지만... 각설하고, 모든 요소만큼 사이클이 돌아야 하므로 반복문은 0 ~ 배열의 길이 - 1 까지는 돌아야 할 것 같고, 한 사이클당 반복은 인접한 요소들을 모두 확인하고 마지막 요소가 가장 크다는 것을 알고 있으니까 0 ~ 배열의 길..
- 2020-06-12 15:44:07
- [Algorithm log] findShortestOfThreeWordsalpha brain문자열의 길이가 가장 짧은 문자열 찾기. sol 1) 첫번째 파라미터를 가장작은 길이의 문자열로 생각하고 두번째, 세번째 파라미터와 비교한다. function findShortestOfThreeWords(one,two,three){ let shortest = one; if(shortest.length > two.length){ shortest = two; } if(shortest.length > three.length){ shortest = three; } return shortest; } sol 2) 파라미터들을 배열로 넣고 reduce를 이용하여 비교한다. function findShortestOfThreeWords(one,two,three){ let arr = []; arr.push(one,two,..
- 2020-01-14 23:35:22
반응형
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)