일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- extension
- Foundation
- struct
- UIKit
- IOS
- url
- type
- Method
- interpace
- Xcode
- Class
- property
- optional
- instance
- Protocol
- initalizer
- delegate
- 스위프트
- 디자인패턴
- 이니셜라이저
- tuist
- 코딩테스트
- enum
- initializer
- String
- Swift
- init
- Terminal
- Git
- Unicode
- Today
- Total
목록전체 글 (77)
아리의 iOS 탐구생활
✔️ inout이 뭔데? Swift는 기본적으로 'call by value' 형식이다. 그래서 call by reference를 구현하려면 함수의 매개변수를 inout parameter로 구현해야한다. 함수의 매개변수는 기본적으로 상수(let)이다. 함수는 값을 복사하여 내부에 전달하지만, inout 키워드를 사용하면 참조로 전달하게 된다. 예를 들어 일반적인 함수를 만들어서 확인해보면, var A = 3 var B = 9 func swapTwoTest(_ numbersOwn: Int, _ numbersTwo: Int) { // numbersOwn = 6 // Cannot assign to value: 'numbersOwn' is a 'let' constant // numbersTwo = 18 // Ca..
메모리 구조에 대해서 알아보기전에 메모리의 대한 내용 먼저 다루기 데이터나 프로그램을 저장하는 저장 공간은 계층 구조를 가진다. CPU에서 가장 가까운 저장공간은 레지스터인데, 레지스터 -> CPU 캐시 메모리 -> 메인메모리 -> 보조기억장치 -> 외부기억장치 순으로 멀어진다. CPU로부터 멀어질수록 데이터를 저장하는 용량이 커지고 접근 속도는 느려진다. ROM은 Read Only RAM은 Read / Write 가능 메모리 구조 스택(Stack) 먼저 들어간건 나중에 나온다. (LIFO 후위선출 구조) 할당과 해제를 반복하기 때문에 데이터 용량이 불확실하다. 메모리의 높은 주소부터 낮은 주소 순으로 할당 된다. 함수에 포함된 지역변수들만 접근할 수 있다. 컴파일 시에 할당될 영역의 크기가 결정된다. ..
Swift의 자료구조 중 하나인 Set, 컬렉션 타입 이다. 순서가 중요하지 않거나, 항목이 한번만 표시되도록 해야하는 경우 배열 대신 집합을 사용할 수 있겠다. 배열과 달리 중복 요소를 허용하지 않고, 해시를 통해 값을 저장하기 때문에 배열에 비해 검색속도가 빠르다. 저장되는 자료형은 Hashable 프로토콜을 준수하고 있어야 한다. ✔️ 초기화 빈 Set을 만들땐 꼭 타입을 명시해줘야 한다. 빈 Set은 타입추론이 불가능하다. var intSet: Set = [] 값이 있는 Set은 'Set'만 명시해준다면 타입추론이 가능하다. let stringSet: Set = ["lee", "ari", "babo"] // Set ✔️ 값 추가 insert()와 update()는 같은 일을 하지만 아래와 같이 반..
✔️ 특징 키와 값이 쌍으로 이루어진 자료형 [key : value] 순서가 없는 컬렉션이다. > key나 value를 원하는 규칙으로 정렬하면서 순회. value는 중복 가능, key는 중복 불가 ✔️ 기본적인 초기화 let dic: [String : Double] = [:] let dic2 = [String : Double]() let dic3 = [1 : "100만원", 2 : "50만원" , 3 : "10만원"] // 타입유추 ✔️ uniqueKeysWithValues 배열에 value를 임의로 추가하여 새 Dictionary로 초기화. Array > [key, value] let arr = ["own", "two", "three", "four"] let dic = Dictionary(unique..
2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 2차원 배열이 주어졌을때 i,j 위치부터 x,y 위치까지의 합을 구하는 문제. 반복문을 이용해서 단순하게 풀수도 있는 쉬운문제이다. 더보기 let n = readLine()!.split(separator: " ").map{ Int($0)! } var arr = [[Int]]() for _ in 1...n[0] { arr.append(readLine()!.split(separator: " ").map{ Int($0)! }) } for ..