본문 바로가기

분류 전체보기140

[백준] 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.
[프로그래머스] Swift - [3차] 파일명 정렬 (LV.2) 문제 설명 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img2.png"] 순이 되지만, 숫자 순으로 정렬.. 2024. 3. 21.