병합 정렬은 반으로 나누고 합치면서 정렬합니다. 코드를 살펴봅시다. 위 코드에서 mergeSort 함수는 반으로 나누는 역할을 하며 merge함수는 합치는 역할을 합니다. 큰 흐름을 살펴보면 mergeSort함수를 통해 중간 인덱스를 잡고 왼쪽 오른쪽으로 나눕니다. 나눈 배열을 재귀로 다시 mergeSort로 넘깁니다. 그리고 배열의 길이가 1이면 리턴하게 됩니다. 그럼 배열 count가 1이 될 때까지 나누어지겠죠. 이후 나뉜 배열에 대해서 merge가 실행됩니다. merge가 실행되는 순서는 위와 같습니다. [1][5]에서 처음 merge가 실행되며 [4][1,5]에서 두 번째 merge가 실행되며 [3][6]에서 세 번째 merge가 실행되며 [2][7]에서 네 번째 merge가 실행되며 [3,6]..
선택 정렬은 가장 작은 값을 찾아서 앞으로 보내주는 정렬입니다. 첫 번째 원소를 두 번째 원소부터 마지막 원소까지 차례대로 비교하여 가장 작은 값을 찾아 첫 번째에 놓고, 두 번째 원소를 세 번째 원소부터 마지막 원소와 차례대로 비교하여 그중 가장 작은 값을 찾아 두번째 위치에 놓는 과정을 반복합니다. + 선택정렬을 코드로 작성할 때는 가장 작은 값을 찾기 위한 min값이 있어야합니다. 코드를 살펴봅시다. arr는 우리가 정렬해야 할 배열이며, 1부터 7까지 정렬되지 않은 상태로 존재합니다. arr의 크기는 7이고 인덱스는 0부터 6까지 입니다. (external for loop) 외부에 있는 for 루프는 최솟값이 놓일 인덱스를 위해 사용합니다. (internal for loop) 내부에 있는 for ..
코딜리티의 데모 테스트의 문제는 이렇습니다. 저는 언어를 Swift4로 선택했습니다. 하하. 먼저 문제 해석 :) N개의 정수 중 A배열이 주어지면 A에서 발생하지 않은 가장 작은 양의 정수를 리턴하세요. 예를 들어 A= [1,3,6,4,1,2]이면 함수는 5를 리턴해야 합니다. A = [1,2,3]이면 함수는 4를 리턴해야 합니다. A = [-1,-3]이면 함수는 1을 리턴해야 합니다. 블라블라 효율적인 알고리즘을 작성해주라. N은 [1.. 100,000] 범위의 정수이며 A의 각 요소는 [-1,000,000.. 1,000,000]입니다. 일단 데모 테스트를 풀어보자. 핵심은 주어진 A배열에서 발생하지 않은 가장 작은 양의 정수를 리턴해야 합니다. 그냥 for문으로 1부터 A의 카운트만큼 돌려서 배열에..
- Total
- Today
- Yesterday
- ARC
- 머신러닝
- leetcode
- swiftUI
- Xcode
- string
- stanford SwiftUI
- iOS SwiftUI
- 애니메이션
- 스위프트
- 책
- 알고리즘
- 딥러닝
- objc
- 문자열
- wwdc
- RX
- ReactiveX
- 책 추천
- ios
- 독서
- Deep learning
- 스위프트UI
- 책 후기
- swift5
- objective-c
- Animation
- Algorithm
- rxswift
- SWIFT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |