
오늘은 이어서 Combining 연산자에 대해 공부해 보겠습니다. Prepending upstream에서 방출한 값 앞에 추가해서 보내는 용도로 사용합니다. prepend(Output) publisher에서 방출 되는 이벤트 이전에 값을 넣어줄 때 사용합니다. var subscriptions = Set() example(of: "prepend(output)") { let publisher = [3, 4].publisher publisher .prepend(1, 2) .sink(receiveValue: { print($0) }) .store(in: &subscriptions) } /* ——— Example of: prepend(output) ——— 1 2 3 4 */ 아래처럼 음수 를 추가해도 순서대로 ..

https://school.programmers.co.kr/learn/courses/30/lessons/120886 문제 사진 내 풀이 첫풀이 오답 func solution(_ before:String, _ after:String) -> Int { return String(before.reversed()) == after ? 1 : 0 } solution("allpe", "apple") // 0 처음 생각했던건 순서를 바꾸면 된다해서 '뒤집는'거에만 집중했었다. 테스트결과는 주루룩 실패.. 그래서 하나하나 비교해야하는데 정렬을 해야할거라 생각했고 적용해본 알고리즘은 아래와 같다. func solution(_ before:String, _ after:String) -> Int { return before...

https://school.programmers.co.kr/learn/courses/30/lessons/12935 문제 사진 내 풀이 func solution(_ arr:[Int]) -> [Int] { guard arr.count > 1 else { return [-1] } guard let index = arr.firstIndex(of: arr.min()!) else { return [-1] } var result: [Int] = arr result.remove(at: index) return result } 비교할게 없을때 [-1] return 최소값 구하기 min() 메서드 제일 작은값의 인덱스 구하기 구한 인덱스 삭제 remove(at:) 다른사람의 풀이 func solution(_ arr:[In..

https://school.programmers.co.kr/learn/courses/30/lessons/120835 문제 사진 내 풀이 import Foundation func solution(_ emergency:[Int]) -> [Int] { var result: [Int] = [] emergency.map { el in result.append(emergency.filter { $0 > el }.count + 1)} return result } solution([1, 2, 3, 4]) 빈배열을 만들고 (순위를 보여줄 배열) 아래 처럼 루프가 돌아감 ==> el은 처음 루프 (map), e2는 이중 루프 (filter에서 $0) 예) el[0] 와 e2[0], e2[1], e2[2], e2[3] 이런..

https://school.programmers.co.kr/learn/courses/30/lessons/12932 문제 사진 내 풀이 1. func solution(_ n:Int64) -> [Int] { var arr = String(n).map { $0 } var resultStr: [String] = [] var resultInt: [Int] = [] for i in arr { resultStr.append(String(i)) } for _ in resultStr { resultInt.append(Int(resultStr.popLast()!)!) } return resultInt } 비효율적이라 생각한다. 빈배열과 for문을 두번 써야한다는점과 가독성 측면에서도 별로여서 아래처럼 리팩토링을 해봤다. ..

https://school.programmers.co.kr/learn/courses/30/lessons/120838 문제 사진 내 풀이 import Foundation // 1 let morse = [ ".-": "a", "-...": "b", "-.-.": "c", "-..": "d", ".": "e", "..-.": "f", "--.": "g", "....": "h", "..": "i", ".---": "j", "-.-": "k", ".-..": "l", "--": "m", "-.": "n", "---": "o", ".--.": "p", "--.-": "q", ".-.": "r", "...": "s", "-": "t", "..-": "u", "...-": "v", ".--": "w", "-..-": ..

이전 챕터와 비슷하게 filtering 연산자에 대해 공부해 보려 합니다. Filtering basics filter() Swift에 있는 filter와 같습니다. (조건문과 성립하는것만 걸러냄) var subscriptions = Set() example(of: "filter") { // 1. 1~10까지 이벤트 방출 let numbers = (1...10).publisher // 2. filter 연산자로, 3의 배수만 걸러냄 numbers .filter { $0.isMultiple(of: 3) } // isMultiple of의 지정된 숫자의 배수이면 true 반환 .sink(receiveValue: { num in print("\(num) 은 3의 배수") }) .store(in: &subscri..

https://school.programmers.co.kr/learn/courses/30/lessons/120834 문제 사진 내 풀이 import Foundation let ageKey: [Int: String] = [ 0: "a", 1: "b", 2: "c", 3: "d", 4: "e", 5: "f", 6: "g", 7: "h", 8: "i", 9: "j" ] func solution(_ age:Int) -> String { var result: [String] = [] let digits: [Int] = String(age).compactMap { Int(String($0))} for num in digits { result.append(ageKey[num]!) } return result.join..

https://school.programmers.co.kr/learn/courses/30/lessons/120862 문제 사진 내 풀이 테스트케이스 7번에서 실패하는데 이유를 모르겠다.. ㅠㅠ import Foundation func solution(_ numbers:[Int]) -> Int { var maxValue: Int = 0 for i in 0...numbers.count - 1 { for j in 0...numbers.count - 1 { if i != j { maxValue = max(maxValue, numbers[i] * numbers[j]) } } } return maxValue } solution([1, 4, 4, 5, 7, 7]) 최대값을 저장하는 maxValue 변수를 만든다. 두..
각 Operator는 publisher를 반환합니다. publisher는 upstream 이벤트를 받고 조작합니다. 그러고나서, 조작된 이벤트들을 사용자에게 downstream으로 보냅니다. Collecting Values collect() 각각의 value들을 한 배열안에 넣습니다. 1. collect() 안썼을시 var subscriptions = Set() example(of: "collect") { ["A", "B", "C", "D", "E"].publisher .sink(receiveCompletion: { print($0) }, receiveValue: { print($0) }) .store(in: &subscriptions) } /* ——— Example of: collect ——— A B ..
- Total
- Today
- Yesterday
- Swift Error Handling
- Swift ModernRIBs
- Swift final
- Swift 알고리즘
- Combine: Asynchronous Programming with Swift
- Swift 프로퍼티
- 2023년 회고
- Swift inout
- Swift joined()
- swift reduce
- Swift init
- iOS error
- swift (programmers)
- swift property
- 원티드 프리온보딩
- RIBs tutorial
- Swift 프로그래머스
- CS 네트워크
- Swift Leetcode
- swift 고차함수
- swift programmers
- ios
- Swift 내림차순
- swift protocol
- removeLast()
- Class
- Swift
- RTCCameraVideoCapturer
- Swift RIBs
- Swift joined
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |