전체 글(103)
-
함수(instance함수, class함수, static함수)알아보기!
swift 에는 세가지 함수 종류가 있습니다. 앞에 붙는 키워에 따라서 instance/ class/ static으로 나뉩니다. class Sample { // 1. Instance 함수 func InstanceFunc() { } // 2. class 함수 class func ClassFunc() { } // 3. static 함수 static func StaticFunc() { } } 평소에 쓰던 함수들은 instance 함수일 확률이 매우 높다.... 다른 나머지 2가지의 함수을 알아보도록하자. 우선 static함수와 class함수는 타입 메소드 라고 부릅니다. 모두 class 객체보다는 class 자체와 연관되어 있습니다. ()생성자를 통해서 인스턴스를 생성하지 않더라도 바로접근이 가능합니다. Sa..
2022.07.24 -
객체를 알아보자(객체,클래스,스트럭트)
객체란?(object)란? -객체라는 것은 메시지를 전달받을 수 있는 대상을 말합니다. 햄 쥐 달려!라고 한다면 햄 쥐는 객체라고 할 수 있다. (class의 인스턴스를 생성하는것이랑 같다고 생각하면 된다. 클래스의 인스턴을 말하는 것이다.!!) -swift에서는 객체가 될 수 있는 class, struct 가 있습니다. 객체에 메시지를 전달하는 방법 -객체에 메시지를 전달하는 방식은 "객체. 메시지"입니다. 객체에. 을 찍고 메시지를 입력하면 됩니다. 햄 쥐에게 달려!라고 메시지를 전달 때는 hemg.run()와 같이 표현이 됩니다. 변수와 객체의 관계 -variable-은 객체의 이름입니다. 그 자체가 객체인 것이 아닙니다. 객체를 담는 상자라고 생각하면 되겠습니다. 기술적으로는 객체를 참조한다고 표..
2022.07.24 -
알고리즘 [Greedy]
1. 탐욕법(Greedy Algorithm)이란? 매 순간 최적의 해라고 생각되는 것을 선택해 나가는 방식으로, 최종적인 해답에 도달한다 이때, 탐욕 선택 조건은 앞으 선택이 이후에 선택에 영향을 주면 안 되며, 문제에 대한 최적해가 부분 문제에 대해서도 최적해여야만 최적해를 구할 수 있다 따라서 만약 다음과 같은 트리가 있을 때 Leaf 노드까지 가는데 가장 큰 값을 구해야 한다면, 매순간 최적의 해를 선택해야한다(그리디알고리즘) 제일먼저 상위 부모자식간의 비교한다. 1,10,20 더 큰값인 20이 최적해이므로 선택하는것이다. 그다음 이제는 20의 눈앞에 있는 1과 12을 비교해서 더 큰 값인 12인 최적해이므로 선택한다. 만약 DP로 구현 했다면, 모든 노드에 대해 나눠서 탐색을 진행 했어햐 했을것이..
2022.07.23 -
알고리즘 [Hash Map]
해시 맵이란?(해시 맵 == 해시테이블)(swift 는 딕셔너리처럼되어있다.) : Key - Value로 값을 저장한다. Key Value 100 변요한 101 박휘순 102 최우식 103 이병헌 키값을 해쉬로 바꿔 메모리를 효율적으로 관리하도록한다. 키값에 대해 해쉬함수를 key%4로 정의 하게된다면 길이 4인 배열에 저장 할 수있다. ex) key 100인 경우, hash 값은 0 (=100%4) 이 되므로 empList[0] = 변요한 출력 하지만 서로 다른 키에 대해 동일한 해시 값이 생성되는 경우에는 충돌이 발생된다. 충돌문제 해결책 1. 열린 어드레싱 방법 충돌이 발생했을때, 그 옆자리가 비었는지 살펴보고, 비었을 경우 그 자리에 대신 저장한다. -선형 조사법 k라는 키에서 충돌 발생 시 조사..
2022.07.23 -
알고리즘 힙[Heap]
힙에 대한 기본적인 예시) Binary Tree - [O(1)] add : O(log N) delete: O(log N) TOP : O(1) Binary Heap - O(n) 부모 노드가 항상 자식노드보다 커야한다. 삽입하여 값을 변경할 경우 O(log n) 새로운 값을 넣게 되면 부모노드와 비교하고 자리 변동이 일어나기 때문이다. [9, 7, 5, 1, 3] 자식 노드에서 부모 노드로 갈 경우 3이 1로 가려는경우 4 -1 / 2 = 1 (1.5 이지만 내림한다) index -1 / 2 : to parent 부모 노드에서 자식 노드로 갈 경우 2*index + 1 : Lest child 2 * 1 + 1 = 3 (7에서 1로 갈 경우 Index=1 결과값 index3은 1이다) 2*index + 2 :..
2022.07.23