안녕하세요. 밀쿄입니다. 오늘도 문제하나를 같이 풀어보겠습니다. https://programmers.co.kr/learn/courses/30/lessons/42587 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이 문제는 우선순위 큐를 사용하는 문제입니다. 먼저 큐와 우선순위 큐 두 개를 만들어 줍니다. 큐는 배열의 인덱스와 함께 우선순위를 저장해줍니다, 그리고 우선순위큐는 우선순위를 정렬해서 저장해줍니다. 자 이렇게 해주고 나면 이제 당연하게 큐에서 하나 pop하고 우선순위큐에서 pop을 해서 우선순위를 비교해줍니다. 우선순위가 같다면 당연히 인쇄를 ..
문제 요약 2016년 a월 b일이 무슨 요일인지 리턴하는 함수 작성 2016년은 윤년 2016년 a월 b일은 실제로 있는 날 접근 00. a월 b일이 총 몇 일째인지 구해서 7로 나누자 01. 2016년 1월 1일이 무슨 날? - 금요일 -> 1월 1일 -> 총 하루 -> 7을 1로 나눈 나머지 즉, 1일 때 금요일 -> 1 - 금, 2 - 토, 3 - 일, ... , -목 코드 func solution(_ a:Int, _ b:Int) -> String { var answer: String = "" var totalDay: Int = b var monthDay: Int = 0 for index in 1..= 8 && index % 2 == 0 ){ monthDay = 31 } else if index =..
안녕하세요. 밀쿄입니다. 오늘은 콤바인에서 연산자들 중에 어떤게 있는 지 알아보겠습니다. 먼저 collect() 입니다. 다음과 같은 Stream이 있습니다. [1, 2, 3, 4, 5].publisher .sink(receiveCompletion: { print($0)}, receiveValue: { print($0 )}) .store(in: &cancellable) //결과 1 2 3 4 5 finished 이 스트림에 collect을 사용해보겠습니다. [1, 2, 3, 4, 5].publisher .collect() .sink(receiveCompletion: { print($0)}, receiveValue: { print($0 )}) .store(in: &cancellable) //결과 [1, 2..
Publisher 시간이 지남에 따라 하나 이상의 값을 방출할 수 있는 Protocol 입니다. public protocol Publisher { associatedtype Output associatedtype Failure : Error func receive(subscriber: S) where S : Subscriber, Self.Failure == S.Failure, Self.Output == S.Input } Output: 내보내는 값의 타입 Failure: 내보내는 에러의 타입 ( 단, Error 프로토콜 채택 필수) receive(subscriber:) Subscription을 생성해서 Subscriber에게 값 전달 합니다. 이 때 이 Subscription이 실제적인 작업과 값 전달을 ..
안녕하세요. 밀쿄입니다. 오늘은 콤바인을 시작하기 전에 알면 좋을 것들을 살펴보겠습니다. (글의 순서가 너무 뒤죽 박죽이네요) 먼저 애플에서는 콤바인을 뭐라고 설명할까요? 시간에 따른 값들을 처리하기 위한 통합적이고 선언적인 API라고 공식 문서에는 되어있습니다.. 그럼 콤바인은 왜 필요할까요? 그 이야기를 위해서는 먼저 비동기 프로그래밍에 대해서 이야기 해야합니다. '비동기' 라는 단어를 들으면 흔히 네트워크 통신을 떠올릴 것이라고 생각합니다. 하지만 사실 네트워크에 국한하는 것은 옳지 않습니다 앱에서 일어나는 모든 동작은 비동기이기 때문입니다. 그렇다면 우리는 이러한 비동기처리방식을 어떻게 사용했을까요? 여태까지 우리가 알게 모르게 써온 Notification Center, Delegate, GCD(..
안녕하세요. 밀쿄입니다, 오랜만에 Combine 관련으로 글 쓰는 것 같네요. 오늘은 결합 연산자 중에 제일 많이 사용하게 되는 CombineLatest에 대해서 알아보겠습니다. 일단 조금 이상한 예제지만 CombineLatest 전후를 비교하기 위해서 예제를 하나만 비교해보겠습니다,. 두 개의 배열이 있고 이 배열이 count가 일정 갯수이상 되면 콘솔창에 메세지를 출력하는 예제입니다. 먼저 콤바인 없는 상태입니다. class TestClassWithoutCombine { var items = [String]() { didSet { self.isPass = items.count > 3 && items2.count > 1 } } var items2 = [String]() { didSet { self.is..
안녕하세요. 밀쿄입니다. 오늘은 이진 탐색 트리에 대해서 알아보겠습니다. 이진 탐색트리는 두 자료구조를 결합한 자료 구조 입니다. 그 자료 구조 중 하나는 탐색이 빠르지만 삽입 삭제가 안되고 다른 하나는 삽입 삭제는 빠르지만 탐색에 O(n)이란 복잡성을 가지고 있습니다. 그래서 그 두개를 합쳐서 탐색이 빠르고 삽입삭제가 빠른걸 만들고자 고안이 되었습니다. 그래서 그 두 개가 무엇인지 궁금하실텐데 바로 이진 트리와 연결리스트입니다. 자 그럼 이진 탐색 트리에 대해 본격적으로 알아보겠습니다 이진 탐색트리는 다음과 같은 특징을 가지고 있습니다. 각 노드의 왼쪽 서브트리에 있는 노드의 값은 부모 노드보다 그 값이 작다. 각 노드의 오른쪽 서브트리에 있는 노드의 값은 부모 노드보다 그 값이 크다 들어가기전에 스위..
안녕하세요. 밀쿄 입니다. 오늘은 우리가 무심코 지나치게 되는 UIWindow에 대해서 알아보겠습니다. 저는 코드로 화면을 짜기 때문에 사실 새 프로젝트 파일을 만들 때마다 UIWinodw를 생성해서 사용하는데 매번 지나치고 가는 것 같아서 이 기회에 정리해보고자합니다, 기본적으로 UIWindow는 뷰나 객체들에게 이벤트를 전달하는 역할을 합니다. 다시말해서 View Controller와 함께 이벤트를 처리하고 앱 운영에 필수적인 다른 많은 작업을 수행하게 되는녀석입니다.' 이러한 UIWIndow는 기본적으로 제공해줍니다. 단, 스토리보드를 사용할 때만 말이죠 참고로 이 때 AppDelegate나 SceneDelegate에 UIWindow타입의 프로퍼티가 존재해야합니다, 그래서 우리가 AppDelegat..
- Total
- Today
- Yesterday
- 결합연산자
- MVC
- 삨
- SEQUENCE
- BBIK
- 텔큐온
- programmers
- 스유
- 스택뷰
- combine
- 자료구조
- 현업이그리운
- SwiftUI
- AutoLayout
- Just
- Apple
- CombineLatest
- iOSCombine
- Queue
- ios
- UIViewControllerRepresentable
- 스위프트유아이
- compactMap
- replaceNil
- ErrorHandling
- 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 |