일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- @state
- 프로세스 스케줄링
- 상호배제
- 운영체제
- forEach
- Swift
- Apple Developer Academy
- 데드락
- core data
- 앨런
- 알고리즘
- deadlock
- 오브젝트
- decode
- Algorithm
- 동시성
- UserDefaults
- 인프런
- 동기화
- SwiftUI
- Codable
- scrollview
- 가상 메모리
- Linked List
- COLOR
- IOS
- struct
- async
- 100 days of SwiftUI
- 비동기
- Today
- Total
목록CS/자료구조 (27)
기어가더라도 제대로
Tags: 알고리즘 등록일: 2022.08.03 블로그 포스팅 여부: In progress 비고: 클로저 캡쳐, 함수형 프로그래밍을 공부하고 나서 다시 보자. 작성소요시간: 0:30 학습일: 2022.08.03 정의 자기 자신을 호출하는 함수를 말한다. 자기 자신을 호출하는 것을 재귀 호출(Recursion call)이라고 합니다. 함수 호출은 Call stack 에 쌓이기 때문에 스택 자료구조와 유사하게 동작합니다. 함수형 프로그래밍에선 루프 구현을 재귀로 구현하는 경우가 많습니다. 잘못 작성하면 무한 루프에 빠질 수 있습니다. 재귀로 작성하면 더 쉽게 풀리는 코딩 테스트 문제가 있다. 더 효율적인 것은 아님 재귀로 구현해야 편한 알고리즘 Union-Find DFS Backtracking 사용법 재귀 ..
정의 소수(prime) 1과 자기 자신만을 약수로 가지는 수를 의미한다. 소수를 구하는 효율적인 방법을 알아보자. 어떤 숫자 N 이 소수인지 판별하는 방법 1. 가장 직관적인 방법 2부터 N -1 까지 루프를 돌면서 나눠보기 시간복잡도O(n) 코테에 부적합 func isPrime(number: Int) -> Bool { for i in 2.. Bool { for i in 2.. number { break } if number % i == 0 { return false } } return true } 여러 숫자를 소수인지 아닌지 판별하는 에라토스테네스의 체 2 부터 N 까지의 수 중 소수를 골라내는 로직이다. 방식은 간단하다. 2 1과 자기 자신으로 나눠지므로 소수 2의 배수는 다 컷(4,6,8,…54) ..
자판기의 동전 반환 로직 마시멜로 실험에서 아이의 선택 15분 기다리면 마시멜로 2개 지금 먹으면 마시멜로 1개 지금 먹는것이 확실하므로 지금 먹음 이런 알고리즘을 어떻게 구현할지가 그리디 가 나오게된 배경 정의 매 선택에서 지금 이 순간 가장 최적인 답을 선택하는 알고리즘 특징 보통 최적해를 구하는 알고리즘보다 빠른 경우가 많다. 크루스칼, 다익스트라 알고리즘 등에 사용된다. 직관적인 문제 풀이에 적합하다. 최적해를 보장하지 않는다. 예시1 A 에서 출발 가중치가 B가 더 작으므로 B로 감 A → F 의 총 가중치 65 b route 33 d route 하지만 그리디 알고리즘에 따르면 65를 선택함. 기계적으로 욕심을 구현했다는게 재밌음 예시2 상황 자판기의 동전 반환 문제 거스름돈은 번거롭기 때문에 ..