안녕하세요 : - )오늘은 제가 자주 사용하는 3가지 Extensions들을 소개하려 합니다 isNotEmpty혹쉬배열, 집합, 딕셔너리의 collection이 비었는지 확인하려면 어떻게 하시나요?isEmpty를 호출해서 사용하시나요????(count == 0은 아니라고 하셈 ,, 이유는 여기에 https://hyerios.tistory.com/27) 그렇다면 비지 않았는지 확인은 어떻게 확인하시나요?!isEmpty 이렇게 하시나요???(count != 0도 아니라고 하셈 ,,) extension Collection { var isNotEmpty: Bool { isEmpty == false }} 저는 collection이 비지 않았을 때를 확인하기 위해서위와 같이 Collectio..
알고리즘 문제 풀면서 성능 비교하는 건 아주 중요하죠! 애용하는 LeetCode(https://leetcode.com)는 사이트 자체에서 런타임 소요 시간과 메모리 사용량을 보여주지만, LeetCode에 제출하지 않고 알고리즘 성능 비교할 때는 아래 코드를 사용합니다. struct AlgoTimer { private var startTime: TimeInterval = 0.0 private var endTime: TimeInterval = 0.0 // 타이머 시작 mutating func start() { startTime = NSDate().timeIntervalSince1970 } // 타이머 멈춤 mutating func stop() -> TimeInterval { endTime = NSDate()..
이것도 일하다가 발견한 ^^,,, 신기한 것 (아래 코드는 바로 직전 포스트 한 코드 재탕) class ViewController: UIViewController { private let slider: UISlider = { let slider: UISlider = UISlider() slider.translatesAutoresizingMaskIntoConstraints = false slider.minimumValue = 0 slider.maximumValue = 100 slider.value = 0 slider.addTarget(self, action: #selector(sliderValueChanged(sender:)), for: .valueChanged) return slider }() overr..
오늘은 18번 문제를 풀어보겠습니다. 중간 난이도고 36.5%의 성공률을 보이네요. 오늘 주제는 Two Pointers입니다. n정수들로 구성된 nums배열이 주어지면, nums[a], nums[b], nums[c], nums[d]는 a,b,c,d는 0이상 n미만이고 a,b,c,d는 별개이고 nums[a], nums[b], nums[c], nums[d]의 합이 target과 같은 유니크한 quadruplets의 배열을 리턴하세요. 순서는 상관없습니다. 예시를 보겠습니다. 1번을 보면 아웃풋으로 나온 각 1차 배열들의 원소를 합치면 타깃이 됩니다. -2 + -1 + 1 + 2 = 0 -2 + 0 + 0 + 2 = 0 -1 + 0 + 0 + 1 = 0 이렇게 타깃으로 되는 배열을 만들어서 리턴해주면 됩니다...
오늘은 59번 문제인 Spiral Matrix II를 풀어보겠습니다. 중간 난이도이고 59.5%의 성공률을 보이네요. 오늘의 주제는 matrix 행렬입니다. 먼저 문제를 살펴볼게요! 양의 정수 n이 주어지고, 1부터 n^2까지 나선형 순서로 숫자를 채워 n x n의 행렬을 만들어내라. 제약조건으로는 n이 1이상 20이하네요. 아래 예시를 보면 바로 이해되실거에요. 1번 예시는 n이 3으로 들어왔고 나선형 순서로 1부터 9까지 채워나가는거에요. 2번 예시는 n이 1으로 들어왔고 나선현 순서로 1부터 1까지 채워나가는거에요. 그리고 채워진 2차 행렬을 그대로 리턴해주면 됩니다. TMI 예전에.. 정처기(정보처리기사) 시험을 쳐본적이 있는데 언제지... 4년 전인가... 그 시험에서 요 문제가 나왔었어요. 이..
스위프트 업데이트 내용을 보다가 좋은 메서드가 있어서 정리해보려 합니다. 예전에 알고리즘 문제를 풀 때, 이런 함수 있으면 좋겠다고 생각했었는데 딱 맞는 함수가 나왔더라구요. 각 배열 사이에 - 를 넣어줘야 한다고 가정해봅시다. 저 같은 경우 루프를 돌면서 각 원소 뒤에 -를 붙여주고 if조건문을 두어 맨 마지막 원소면 -를 붙여주지 않도록 작성할 것 같네요. 또 다른 간단한 방법으로 .joined(seperator: "-")를 사용할 것 같아요. 위 예시에서 사용할 수 있는 또 다른 함수 Interperse함수를 살펴봅시다. Intersperse는 시퀀스의 각 원소 사이에 주어진 값을 배치해줍니다. 아래와 같이 시퀀스 extension에 코드가 추가되어있습니다. extension Sequence { f..
오늘 풀어볼 문제는 347번 문제입니다. 난이도는 중간 난이도이며 62.8%의 성공률을 보입니다. 문제를 살펴보겠습니다. nums 정수 배열이 주어지고 정수 k가 주어집니다. 가장 빈번하게 나온 요소를 k개 리턴해줍니다. 이는 어떤 순서여도 상관없습니다. 주어진 예제를 살펴봅시다. 1번 예제는 이미 정렬되어 있네요. 1은 총 3개, 2는 2개, 3은 1개 있습니다. k가 2니까 가장 빈번하게 나왔던 1과 2가 리턴됩니다. 2번 예제는 1밖에 포함이 안되어있고 k가 1이니 1이 리턴됩니다. 딕셔너리를 활용해서 문제를 풀어보겠습니다. func topKFrequent(_ nums: [Int], _ k: Int) -> [Int] { var dict = [Int: Int]() // 횟수 증가 for i in nu..
@State 뷰 안에서 완전히 로컬라이즈 된 것. 얼럿 띄우기, 편집, 애니메이션과 같은 일시적인 상태에만 사용한다. View 구조체는 (read - only) 읽기 전용이다. 예로 SwiftUI가 모든 뷰를 유지하는 데 사용하는 변수는 let! 이다. let이면 immutable 하기 때문에 아무도 변경할 수 없으니까 어지럽힐 수도 없다. 또한 뷰 생성 시 초기화되는 변수 외에는 변수가 있는 것이 소용이 없다. 읽기 전용이거나 계산된 변수만 의미가 있다. 뷰는 대부분 "stateless"이어야 하며 모델을 그리는 역할을 한다. 그래서 대부분 뷰는 어떤 상태가 필요하지 않기 때문에 읽기 전용이다. 영구적인 상태는 모델에 속하고 일시적인 상태를 사용할 때 State를 사용한다. @State private ..
- Total
- Today
- Yesterday
- string
- Animation
- wwdc
- 애니메이션
- swiftUI
- 머신러닝
- 스위프트UI
- 딥러닝
- swift5
- stanford SwiftUI
- 책 후기
- ios
- Xcode
- objc
- 독서
- ReactiveX
- 문자열
- objective-c
- 스위프트
- Deep learning
- RX
- Algorithm
- 책 추천
- rxswift
- 알고리즘
- iOS SwiftUI
- leetcode
- SWIFT
- ARC
- 책
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |