본문 바로가기

분류 전체보기141

[백준] Swift - 2607번: 비슷한 단어 문제영문 알파벳 대문자로 이루어진 두 단어가 다음의 두 가지 조건을 만족하면 같은 구성을 갖는다고 말한다.두 개의 단어가 같은 종류의 문자로 이루어져 있다.같은 문자는 같은 개수 만큼 있다.예를 들어 "DOG"와 "GOD"은 둘 다 'D', 'G', 'O' 세 종류의 문자로 이루어져 있으며 양쪽 모두 'D', 'G', 'O' 가 하나씩 있으므로 이 둘은 같은 구성을 갖는다. 하지만 "GOD"과 "GOOD"의 경우 "GOD"에는 'O'가 하나, "GOOD"에는 'O'가 두 개 있으므로 이 둘은 다른 구성을 갖는다.두 단어가 같은 구성을 갖는 경우, 또는 한 단어에서 한 문자를 더하거나, 빼거나, 하나의 문자를 다른 문자로 바꾸어 나머지 한 단어와 같은 구성을 갖게 되는 경우에 이들 두 단어를 서로 비슷한 .. 2024. 5. 24.
[백준] Swift - 2179번: 비슷한 단어 문제N개의 영단어들이 주어졌을 때, 가장 비슷한 두 단어를 구해내는 프로그램을 작성하시오.두 단어의 비슷한 정도는 두 단어의 접두사의 길이로 측정한다. 접두사란 두 단어의 앞부분에서 공통적으로 나타나는 부분문자열을 말한다. 즉, 두 단어의 앞에서부터 M개의 글자들이 같으면서 M이 최대인 경우를 구하는 것이다. "AHEHHEH", "AHAHEH"의 접두사는 "AH"가 되고, "AB", "CD"의 접두사는 ""(길이가 0)이 된다.접두사의 길이가 최대인 경우가 여러 개일 때에는 입력되는 순서대로 제일 앞쪽에 있는 단어를 답으로 한다. 즉, 답으로 S라는 문자열과 T라는 문자열을 출력한다고 했을 때, 우선 S가 입력되는 순서대로 제일 앞쪽에 있는 단어인 경우를 출력하고, 그런 경우도 여러 개 있을 때에는 그 .. 2024. 5. 22.
[Combine] Combine 개념 및 등장배경 CombineApple 공식문서의 소개는 다음과 같다.이벤트 처리 연산자를 결합해 비동기 이벤트 처리를 커스텀한다개요시간 흐름에 따른 값을 처리하기 위한 선언적 Swift API를 제공하는 프레임워크이 값들은 여러 종류의 비동기 이벤트를 나타낼 수 있다. ( 통합 프레임워크라는 의미! )Publisher를 선언하여 시간에 따라 변경될 수 있는 값을 노출하고, Subscriber가 Publisher로부터 값을 받도록 한다.Publisher 프로토콜은 시간에 따른 일련의 값을 전달할 수 있는 타입을 선언한다.Upstream publisher로부터 받은 값을 처리하고, 처리한 값들을 다시 게시하는 Operator를 갖는다.Publisher Chain의 말단에서 Subscriber는 element들을 수신할 때.. 2024. 4. 28.
[SwiftUI] ObservableObject, @StateObject, @ObservedObject 알아보기 [Protocol] ObservableObject Class 전용 프로토콜로, 데이터가 변경되면 Observer에게 알림을 보내는 타입 iOS 17.0부터는 Observable() 매크로 사용이 권장됨 ObjectWillChange ObservableObjectPublisher타입으로, 객체가 수정되기 전에 전달하는 publisher이다. objectWillChange.send() 메서드를 사용해 변경사항을 subcriber에게 전달한다. 변경사항이 있을 때마다 objectWillChagne.send() 를 해야한다면, 몹시 불편할 것 같다. 이를 보완하는 방법으로 @Publshed 라는 property wrapper가 있다. import SwiftUI class TestViewModel: Observa.. 2024. 3. 25.