- [ 코딩테스트/백준 ][백준/BOJ] 11724번 연결 요소의 개수 (Swift 스위프트)2024-08-07 18:46:56문제 난이도: 실버 2사용 알고리즘: DFS Int 이중 배열을 통해 외부 배열은 정점의 위치를,내부 배열은 해당 정점과 연결된 정점들을 저장한다. 예제 입력 1을 넣게 되면graph는 [[], [2, 5], [1, 5], [4], [3, 6], [2, 1], [4]]이 된다. 1번 정점에 연결된 정점은 2, 52번 정점에 연결된 정점은 1, 53번 정점에 연결된 정점은 44번 정점에 연결된 정점은 3, 65번 정점에 연결된 정점은 2, 16번 정점에 연결된 정점은 4 여기서 연결 요소는 [1, 2, 5], [3, 4, 6]으로 총 2개이다.import Foundationlet input = readLine()!.split(separator: " ").map { Int($0)! }let n = input..
- [ Swift ][Swift] final2024-08-07 16:44:18finalfinal은 Swift에서 class, method, property의 재정의 및 상속이 될 가능성이 없을 때 사용된다. final 키워드를 사용하는 이유final을 통해 기대할 수 있는 효과는 다음과 같다. 코드 안정성성능 개선코드 안정성기본적으로 class, method, property는 아래와 같이 재정의가 가능하다.class Animal { var age: Int = 10 func changeAge() { age = .random(in: 0 ... 100) }}class Dog: Animal { // 저장 프로퍼티는 getter/setter를 모두 사용해주어야 상속이 가능하다. override var age: Int { ..
- [ UIKit ][UIKit] Compositional Layout Section2024-08-07 14:59:55Compositional Layoutcompositional layout은 UICollectionView 레이아웃의 한 종류로 차례로 item을 구성하고, group을 구성하고, section을 차례로 구성이 가능하다 [ 공식 페이지 제공 코드 ]func createBasicListLayout() -> UICollectionViewLayout { let itemSize = NSCollectionLayoutSize(widthDimension: .fractionalWidth(1.0), heightDimension: .fractionalHeight(1.0)) ..
- [ Swift ][Swift] View Life Cycle2023-06-11 13:59:131. 개요 ViewController의 생명주기로 view가 나타나고 사라지는 과정에서 관련된 메소드들이 호출되어진다.이를 잘 활용하면 원하는 타이밍에 내가 원하는 동작을 수행할 수 있다. 2. View Life Cycle의 순서 3. View Life Cycle method 종류 및 기능// 컨트롤러가 관리하는 view를 생성할 때 호출loadView()// view가 메모리에 올라갈 때 호출viewDidLoad()// view 계층에 view가 추가되기 직전 호출viewWillAppear(_:)// view 계층에서 view가 추가된 직후 호출viewDidAppear(_:)// view 계층에서 view가 삭제되기 직전 호출viewWillDisappear(_:)// view 계층에서 view가 삭제..
- [ Swift ][Swift] App Life Cycle2023-06-11 13:44:521. 개요앱이 실행되고 종료되기 전까지 많은 상태가 존재한다.그 상태는 무엇이 있고, 그 역할에 대해 알아보려고 한다.애플 공식 개발 문서를 토대로 내가 이해한 내용을 정리했다. 2. app life cycle이란? 기본적으로 IOS에서 App의 현재 상태에 따라 무엇을 할 수 있고 할 수 없는지 결정된다.UIKit은 적절한 delegate 객체의 메소드를 호출하여 앱의 상태가 변한 것을 알려준다. 이렇듯 각 상태 별 적절한 조치를 취할 수 있도록 만들어진 것이 App Life Cycle 개념이다. IOS 12 이 전 버전에서는 UIApplicationDelegate 객체를 통해 Life Cycle 이벤트에 대응한다.IOS 13 이 후 버전에서는 다중 창(multi-window)과 멀티캐스팅에 대응하..
- [ Swift ][Swift] 고차함수2023-06-11 13:15:451. 개요고차함수의 종류와 사용 방법 Swift에서 함수는 일급객체로 취급하여 다른 함수를 다른 함수의 전달인자로 사용 가능이때 매개변수로 함수를 갖는 함수가 고차함수 대표적인 고차함수mapfilterreduce2. map1. 매개변수로 전달된 함수를 실행2. 함수로 인하여 변형된 결과를 반환 적용 가능 타입배열, 딕셔너리, 세트, 옵셔널 컨테이너가 담고 있는 각 원소의 값을 매개변수를 통해 받은 함수에 적용한 후, 다시 컨테이너에 포장하여 반환let numbers = [1,2,3,4,5]// 후행 클로저// 매개변수(클로저) : (number: Int) -> Intlet doubleNumbers1 = numbers.map() { (number: Int) -> Int in return number ..
- [ Swift ][Swift] 값타입과 참조타입 차이점2022-08-17 16:42:36swift에 자료구조들은 두가지 타입으로 존재한다 값 타입 (Value Type)참조 타입(Reference Type)- 구조체 (Struct)- 열거체 (Enum)- 튜플 (Tuple)- 클래스 (Class)- 클로저 (Closure) 값 타입 대표 '구조체' 와 참조 타입 대표 '클래스'를 통해 자세히 알아보자 구조체 (값 타입)//구조체 (값 타입)struct User { var ID: String var level: Int init(ID: String, Lv: Int) { self.ID = ID self.level = Lv }}var userHong: User = User(ID: "hong", Lv: 20) ID와 level 이라는 저장 프로퍼티..