일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- COLOR
- 상호배제
- Linked List
- Algorithm
- SwiftUI
- forEach
- core data
- 동시성
- 앨런
- async
- 프로세스 스케줄링
- 100 days of SwiftUI
- 알고리즘
- decode
- Swift
- 오브젝트
- 비동기
- 가상 메모리
- 운영체제
- 인프런
- deadlock
- Codable
- struct
- 데드락
- Apple Developer Academy
- 파일 시스템
- UserDefaults
- IOS
- 동기화
- @state
- Today
- Total
목록알고리즘 (9)
기어가더라도 제대로
Tags: 알고리즘 등록일: 2022.08.03 블로그 포스팅 여부: Not started 작성소요시간: 0:30 학습일: 2022.08.03 정의 필요한 간선 이외에는 전부 제거한다! 신장 트리(Spanning tree) 란 그래프 내에 모든 정점을 포함하는 최소 연결 부분 그래프다. 여기서 최소 신장 트리(MST)는 다음과 같은 조건을 만족한다. 최소한의 간선으로 모든 정점이 연결되어야 한다. 모든 신장 트리 중 가중치의 값이 최소여야 한다. Cycle이 발생해서는 안된다. 최소 신장 트리를 위한 알고리즘은 대표적으로 두 가지가 있다. 크루스칼(Kruskal) 프림(Prim) 크루스칼 알고리즘 그리디 개념을 이용하여 구현할 수 있다. 먼저 모든 그래프를 부분 집합으로 분리한다. 가장 가중치가 낮은 간..
정의 소수(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 상황 자판기의 동전 반환 문제 거스름돈은 번거롭기 때문에 ..