일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Autolayout
- RxSwift요약
- uikit
- swift
- 백준
- IOS
- 선택정렬
- RxCocoa
- 동시성프로그래밍
- swift알고리즘
- coordinator
- LLM
- GCD
- Content Compression Resistance priority
- rxswift
- 알고리즘
- 버블정렬
- Content Hugging priority
- RX
- OperationQueue
- 동작과정
- 오토레이아웃
- Union-Find
- mvvm
- 자료구조
- 병합정렬
- ai expo
- endpoint
- ReactiveX
- 삽입정렬
- Today
- Total
목록전체 글 (26)
JosephCha의 개발일지
선택 정렬 (selection sort) 이란? 다음과 같은 순서를 반복하며 정렬하는 알고리즘 주어진 데이터 중, 최소값을 찾음 해당 최소값을 데이터 맨 앞에 위치한 값과 교체함 맨 앞의 위치를 뺀 나머지 데이터를 동일한 방법으로 반복함 func SelectionSort(unSortedArray: [Int]) -> [Int] { var unSortedArray = unSortedArray for index in 0..
삽입 정렬 (insertion sort) 란 삽입 정렬은 두 번째 인덱스부터 시작 해당 인덱스(key 값) 앞에 있는 데이터(B)부터 비교해서 key 값이 더 작으면, B값을 뒤 인덱스로 복사 이를 key 값이 더 큰 데이터를 만날때까지 반복, 그리고 큰 데이터를 만난 위치 바로 뒤에 key 값을 이동 func insertionSort(unSortedArray: [Int]) -> [Int] { var unSortedArray = unSortedArray for index in 0.. unSortedArray[index2] { let temp = unSortedArray[index2] unSortedArray[index2] = unSortedArray[index2-1] unSortedArray[index2..
버블정렬(bubble sort)이란? 두 인접한 데이터를 비교해서, 앞에 있는 데이터가 뒤에 있는 데이터보다 크면, 자리를 바꾸는 정렬 알고리즘 데이터가 네 개 일때, 예시 ex) unSortedArray = [1, 9, 3, 2] 1차 로직 적용 1 와 9 비교, 자리바꿈없음 [1, 9, 3, 2] 9 와 3 비교, 자리바꿈 [1, 3, 9, 2] 9 와 2 비교, 자리바꿈 [1, 3, 2, 9] 2차 로직 적용 1 와 3 비교, 자리바꿈없음 [1, 3, 2, 9] 3 과 2 비교, 자리바꿈 [1, 2, 3, 9] 3 와 9 비교, 자리바꿈없음 [1, 2, 3, 9] 3차 로직 적용 1 과 2 비교, 자리바꿈없음 [1, 2, 3, 9] 2 과 3 비교, 자리바꿈없음 [1, 2, 3, 9] 3 과 9 비..
Content Hugging priority 1~3번 모두 해당 시 필요한 우선도 1. 컴포넌트(ex. UILabel)들의 Width 제약과 Height 제약을 선언하지 않은 상태 2. 컴포넌트들 사이에 제약을 설정한 상태 3. 컴포넌트들에 대해, 프레임 공간이 다 채워지지 않은 상태 * 1~3번 모두 해당된다면 적어도 하나의 컴포넌트의 컨텐츠 고유 사이즈가 더 늘어나야 될 상황이다. 우선도가 낮은 컴포넌트의 사이즈가 콘텐츠 고유 사이즈보다 늘어나고, 우선도가 높은 컴포넌트는 콘텐츠 고유 사이즈보다 사이즈가 커지지 않도록 제한한다. 예시) Content Compression Resistance priority 1~3번 모두 해당 시 필요한 우선도 1. 컴포넌트(ex. UILabel)들의 Width 제약과..
우선, 디자인 패턴을 사용하는 이유 디자인 패턴이란 프로그램 개발 시, 자주 마주하는 애로 상황에 대한 일반적이고 재사용 가능한 추상화된 해결책. 쉽고, 편리하게 프로그램을 개발, 유지보수, 그리고 모든 이들과 공유하기 위한 규약. Model, View, Controller 쉽게 생각해서, MVC는 무엇(Model)을 어떻게(Controller) 보여줄(View) 것인가 입니다. Model 데이터와 관련된 객체, 데이터를 관리하는 로직(비즈니스 로직) 포함. Controller와 직접적으로 연결. KVO(Key Value Observation)를 통해, Model의 변경사항이 있을 때, Controller에게 알림. (윗 그림 참고) View와 직접적으로 연결되면 안됨. 재사용성 강조됨. 종류 데이터로 ..
https://www.acmicpc.net/problem/10872 재귀 단계 피보나치 수 역시 단순 for문으로도 구할 수 있지만, 학습을 위해 재귀를 써 봅시다. www.acmicpc.net 코드 import Foundation let a = readLine() func recursive(_ n:Int) -> Int{ if n == 0 { return 0 } else if n == 1{ return 1 } else { return n * recursive(n-1) } } let b = Int(a!) print(recursive(b!)) 설명 컴공 1학년때, 나를 괴롭히던 재귀 함수다. 팩토리얼은 해당 숫자에서 1까지의 곱을 의미한다. 무슨소린지 헷갈리니, 예시를 들자면 ex) 5!(5의 팩토리얼) -..