분류 전체보기
-
이항 계수 : 뽑을까 말까? / 다항 계수 : 어디에 줄까?Math♾️/Probability Statistics🎲 2025. 3. 12. 23:15
확률은 가능성에 0~1 사이의 숫자를 부여하는 방법으로가장 기본적인 접근은 '우리가 관심 있는 사건이 일어날 수 있는 경우의 수'를 '가능한 전체 경우의 수'로 나누는 것입니다. 예를 들어, 포커 게임에서 스트레이트 플러시나 풀 하우스와 같은 특정 패가 나올 확률을 계산하려면, 전체 가능한 패 중에서 그런 특정 패가 몇 개나 존재하는지 계산해야 합니다. 하지만 52개나 되는 카드들을 가지고 5개를 뽑았을 때 가능한 조합이 몇 개인지 일일이 세는 것은 쉽지 않습니다. 이렇게 상황이 조금만 복잡해져도 경우의 수를 세는 것이 복잡해지기 때문에 이를 좀 더 쉽게 셀 수 있는 도구가 필요합니다. 이항 계수 : 순서 구분 없는 샘플링이항계수는 n개의 객체에서 r개를 선택하는 방법의 수를 계산할 때 사용합니다. 특..
-
inout 파라미터 작동 방식 파해치기Apple🍎/Swift 2025. 3. 11. 22:21
Swift에서 함수의 파라미터로 전달 된 값은 타입에 따라 다르게 동작하며,Inout 키워드를 통해 이 동작 방식을 변경할 수 있는데요. 오늘은 이에 대해 자세히 알아보도록 하겠습니다. 기본 파라미터 동작 방식 Swift에는 두 가지 주요 데이터 타입이 있죠? 값 타입 (Value Type) : Int, String 같은 기본 타입 또는 struct, enum 참조 타입(Reference Type) : class 값 타입은 스택에 저장되며 값을 넘겨 줄 때 원래 값을 복사를 하여 복사본을 넘겨주기 때문에 새로 넘겨 받은 곳에서 값을 변경해도 원래 값에는 영향이 가지 않습니다. 그에 비해 참조 타입은 힙에 저장되며 값을 넘겨 줄때 참조값(메모리 주소)를 넘겨주기 때문에 새로 넘겨 받은 곳에서도 같은 ..
-
SwiftData 사용할 때 변경 시점도 업데이트 하는 방법Apple🍎/SwiftData 2025. 3. 11. 22:21
상황설명 - swiftData를 사용하여 데이터 모델링@Modelpublic final class SceneCard { // MARK: - Properties @Attribute(.unique) public var id: String public var title: String public var order: Int public var summary: String public var subtitle: String public var done: Bool public var createdAt: Date public var modifiedAt: Date ...-@Bindable을 사용해 모델의 프로퍼티를 직접 TextEditor에 바인딩함 struct Scene..
-
생일 문제 : 더 계산이 쉬운 방법을 찾기Math♾️/Probability Statistics🎲 2025. 3. 10. 22:30
생일 문제방에 n명의 사람이 있을 때, 적어도 두 사람(한 쌍)이 같은 생일을 가질 확률이 50% 이상이 되려면 n은 얼마나 커야 할까요?많은 사람들이 직관적으로 "365의 절반인 약 182명 정도는 있어야하지 않을까 생각합니다." 그러나 실제 답은 이것보다 훨씬 작습니다. 왜 그럴까요? 우선 n명의 사람들 사이에 가능한 모든 비교 횟수를 계산해 봅시다. 각 사람이 다른 모든 사람과 생일을 비교한다면:첫 번째 사람은 n-1명과 비교 ( 자신을 제외한 나머지 사람)두 번째 사람은 n-2명과 비교 (첫 번째 사람과 자신을 제외한 나머지 사람)세 번째 사람은 n-3명과 비교 (첫 번째, 두번째 사람과 자신을 제외한 나머지 사람) ...이 합계는 가우스의 공식을 사용하면 n(n-1)/2가 됩니다. 예를 들어,..
-
가능성에 어떻게 숫자를 부여할까?Math♾️/Probability Statistics🎲 2025. 3. 9. 14:05
우리는 일상에서 "비가 올 가능성이 80%다", "이 치료법이 효과가 있을 가능성은 60%다"처럼 확률적 표현을 자주 사용합니다. 이런 표현들은 불확실한 사건에 정확한 숫자값을 부여함으로써 의사결정에 도움을 줍니다. 그런데 이러한 숫자는 어떤 원칙에 따라 부여되는 걸까요?표본 공간: 가능한 모든 결과들의 집합확률을 논하기 위해 가장 먼저 필요한 개념은 표본 공간(Sample Space)입니다.이는 쉽게 말해 '일어날 수 있는 모든 결과들의 모음'입니다. 예를 들어, 동전을 한 번 던지는 실험에서 표본 공간은 {앞면, 뒷면}이고, 주사위를 한 번 던지는 실험에서 표본 공간은 {1, 2, 3, 4, 5, 6}입니다. 동전을 세 번 던지는 실험에서는 표본 공간이 {HHH, HHT, HTH, HTT, THH, ..
-
순열, 조합 : 똑똑하게 세는 방법Math♾️/Probability Statistics🎲 2025. 3. 8. 23:09
확률 계산의 본질: 경우의 수를 세다. 기본적으로 확률은 '특정 사건이 발생할 수 있는 방법의 수'를 '가능한 모든 경우의 수'로 나누어 계산합니다.그러나 문제가 복잡해질수록(예: 10번의 동전 던지기, 포커 패 등) 모든 경우를 일일이 나열하기 어려워집니다.이때 조합론은 가능한 모든 경우의 수를 효율적으로 세는 방법을 제공합니다.몇 가지 기본적인 계산 공식만 알아도 포커, 주사위 게임, 백개먼 등 다양한 게임의 확률을 쉽게 계산할 수 있습니다.동전 던지기첫 번째 예제로, 동전을 10번 던질 때 가능한 모든 고유한 순서의 수를 계산해 봅시다.여기서 중요한 개념은 순서가 중요하다(order matters)는 것입니다.즉, '앞면-뒷면'과 '뒷면-앞면'은 서로 다른 결과로 간주됩니다.각 동전 던지기에는 2..
-
List와 ScrollView+LazyVStack 비교하기Apple🍎/SwiftUI 2025. 3. 7. 00:04
List + TextEditor 리스트 내부 셀 안의 텍스트에디터에 내용이 많아지면 내부 스크롤이 활성화됨 ( 텍스트 에디터 크기도 살짝 늘어남 )ScrollView + LazyVStack + TextEditorLazyVstack 셀 안의 텍스트 에디터에 내용 있는 많아지면 그에 맞춰 텍스터 에디터 크기가 증가함 SwiftUI에서 List와 ScrollView+LazyVStack 조합이 TextEditor와 함께 작동할 때 다른 동작을 보이는 이유가 뭘까요?List와 ScrollView+LazyVStack의 기본적인 차이점List의 동작 방식List는 UITableView를 기반으로 한 컴포넌트로, 고정된 셀 높이나 자동 계산된 높이를 사용합니다. List는 내부적으로 콘텐츠의 크기를 미리 결정하고,..
-
큐와 덱 : 순서대로 처리하기CS💻/DS & Algorithm 2025. 3. 6. 22:09
큐 초기 상태: [A, B, C, D, E, _, _, _] ^ ^ front reardequeue 후: [_, B, C, D, E, _, _, _] ^ ^ front rear 지난 시간에는 '해시 테이블'에 대해서 알아보았지요. 해시 테이블은 해시 함수를 이용해 키를 인덱스로 변환함으로써 O(1)의 시간 복잡도로 빠른 검색이 가능해졌어요.그리고 서로 다른 키에 대해 같은 인덱스 값이 나오는 '충돌'이 생겼을 때 체이닝이나 개방 주소법등의 기법을 통해 대용량의 데이터를 효율적으로 관리할 수 있게 되었어요. 해시 테이블 : 빠르게 데이터 검색하기자료구조 세번..