https://school.programmers.co.kr/learn/courses/30/lessons/120912 문제 사진 내 풀이 import Foundation func solution(_ array:[Int]) -> Int { return array.map { String($0) }.joined(separator: "").filter { $0 == "7" }.count } 1. array 요소들을 String으로 변환 2. 변환된 String을 하나의 String으로 합침 (joined) 3. String으로 변환된 결과값들 중 "7"이 들어간요소들의 갯수만 걸러냄 (filter) 다른사람의 풀이 import Foundation func solution(_ array:[Int]) -> Int {..
https://school.programmers.co.kr/learn/courses/30/lessons/120892 문제 사진 내 풀이 import Foundation func solution(_ cipher:String, _ code:Int) -> String { return (1...cipher.count) // 1 .filter { $0.isMultiple(of: code) } // 2 .map { String(Array(cipher)[$0 - 1]) } // 3 .joined(separator: "") } solution("pfqallllabwaoclk", 2) 1. isMultiple(of:) 메서드로 매개변수 code 만큼의 배수들만 걸러냅니다. print [2, 4, 6, 8, 10, 12,..
https://school.programmers.co.kr/learn/courses/30/lessons/120887 문제 사진 내 풀이 import Foundation func solution(_ i:Int, _ j:Int, _ k:Int) -> Int { return Array(i...j).flatMap { String($0).compactMap { Int(String($0)) } }.filter { $0 == k }.count } solution(1, 13, 1) 1. i ~ j 까지의 숫자를 배열로 만든다. 2. 그 사이 요소들중 10의자리 수 이상인 요소들을 분리 시킨다. flatMap { String($0).compactMap { Int(String($0)) } } 예) 32 → 3, 2 / 1..
https://school.programmers.co.kr/learn/courses/30/lessons/12917 문제 사진 내 풀이 func solution(_ s:String) -> String { return String(s.sorted(by: >)) } solution("Zbcdefg") // gfedcbZ 처음 생각했던 방법은 filter() 메서드를 사용하여 isLowercase, isUppercase 로 소문자, 대문자를 걸러서 sorted() 를 사용해 마지막으로 합칠 생각이었으나... sorted(by: >) 내림차순으로 정리하면 소문자(z ~ a) → 대문자 (Z ~ A) 순으로 알아서 정리를 해줬다.. 나름 머리를 굴렸지만 메서드 하나로 해결되는거에 신기하면서도 허탈했다 🌝
오늘은 이어서 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", "-..-": ..
- Total
- Today
- Yesterday
- 원티드 프리온보딩
- CS 네트워크
- Swift
- swift protocol
- Swift ModernRIBs
- Class
- removeLast()
- Swift 프로그래머스
- swift (programmers)
- 2023년 회고
- Swift joined
- Swift joined()
- Swift 프로퍼티
- Swift Leetcode
- Swift Error Handling
- Swift 내림차순
- Swift RIBs
- Swift init
- Swift inout
- RIBs tutorial
- ios
- iOS error
- swift property
- swift 고차함수
- Swift 알고리즘
- Swift final
- RTCCameraVideoCapturer
- swift programmers
- swift reduce
- Combine: Asynchronous Programming with Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |