오늘은 프로그래머스 2단계 문제, 무인도 여행을 풀어보겠습니다. 문제 개요부터 간단하게 설명 드리겠습니다. 프로그래머스 2단계 문제, 무인도 여행 개요 입력은 [String] 타입의 배열이 들어옵니다. 이 배열은 위와 같은 정보가 String 타입으로 구성되어있습니다. 각 행이 하나의 String으로, N개의 String이 답긴 [String] 배열이 입력으로 들어왔을때, X의 방해를 받지 않고 이동 가능한 인접한 숫자들의 합을 오름차순으로 출력하는 문제입니다. 인접합이 0을 초과하는 경우가 없다면, [-1]을 반환합니다. 예를 들어, 위 문제는 1, 1, 27(5 + 9 + 1 + 1 + 5 + 2 + 3 + 1) 이 답이 됩니다. 해당 문제는 BFS, DFS 등으로 문제를 해결할 수 있는데, 본 포스..
프로그래머스 2단계 연습문제, 롤케이크 자르기 개요 오늘 풀어볼 문제는 프로그래머스 2단계 연습문제, 롤케이크 자르기입니다. [Int] 타입 배열이 주어질때, 배열을 두개의 subarray로 자를때 양쪽 배열에 포함된 숫자의 가짓수가 동일한 경우의 수를 구하는 문제입니다. 예를들어, [1, 2, 1, 3, 1, 4, 1, 2] 가 있다면, [1, 2, 1, 3] / [1, 4, 1, 2]로 자르면 좌우 subarray의 숫자 가짓수는 각각 3개 [1, 2, 1, 3, 1] / [4, 1, 2]로 자르면 좌우 subarray의 숫자 가짓수는 각각 3개로 같게 됩니다. 최종적으로 2가지 케이스가 있으며, 이 경우 2를 반환하면 됩니다. 해당 문제는 단순히 딕셔너리 자료구조를 사용해서 숫자의 빈도수를 카운팅하..
Protocol Type, Opaque Type 모두 얼핏 생각하면 Protocol Type은 해당 프로토콜을 채택한 타입을, Opaque Type도 해당 타입을 conform하는 세부타입을 외부에 노출되지 않게 해주는 동일 역할을 할 것으로 보여집니다. 하지만, 이 둘이 동일하다면 Opaque Type이라는 다른 명칭으로 개념이 나오지 않았을텐데요. Opaque Type은 Protocol Type과 달리, 보다 강력한 타입 보장을 하며, 타입 entity를 보존한다고 합니다. 이 특징으로인해 swift가 해당 Opaque 타입의 세부 타입을 추론할 수 있게 해준다고 하며, 일반 Protocol Type과 차이점을 갖게 됩니다. 이러한 Opaque Type, 불투명타입의 장점을 기본 Protocol ty..
iOS Swift Concurrency, async await 방식의 이점과 사용 간에 생길 수 있는 고민 iOS13 부터 활용 가능한 async await, actor 등의 개념을 잘 활용하면 data racing 문제를 해결하고, 많은 thread의 생성을 야기할 수 있는 context switching을 최소화 할 수 있습니다. 또한, callback closure의 중첩으로 인한 콜벡지옥 등으로 인한 나쁜 가독성을 개선할 수도 있습니다. async await 을 사용할 때에는 일반적으로 함수 반환 타입 앞에 async, async throws를 사용하고, 호출할때에는 Task { ... }, .task { ... } 블럭 내에 await, try await 키워드와 함께 호출하여 사용하게 되는데요..
- Total
- Today
- Yesterday
- uikit
- publisher
- 프로토콜
- 프로그래머스swift
- swift reduce
- 자연어처리
- 스위프트
- 알고리즘문제
- 백준swift
- Swift 알고리즘
- swift언어
- 백준알고리즘
- 컬렉션
- ios
- 개발자문서
- swift문제
- 부스트코스
- swift알고리즘
- swift 문자열
- swift
- 프로그래머스
- CoreML
- swift 기초
- SwiftUI
- Collection
- 김프매매
- createML
- Protocol
- swift string
- 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |