UIEditMenuInteraction
·
iOS/UIKit
정의 메뉴를 이용한 편집 기능을 제공하는 인터렉션이라고한다. 설명으로는 아직 어떤 기능인지 명확하지 않다. 하지만 우리는 이 기능을 무의식적으로 많이 써봤다. 바로 다음 사진과 같이 말이다. 사진을 보니 바로 이해가 된다. 바로 LongPress를 할 때 등장하는 저 메뉴들이 오늘의 주인공인 UIEditMenuInteraction이다. iOS를 훨씬 전부터 공부했던 사람들은 UIMenuController로 알려져있는데   보다시피 iOS 16을 기점으로 더 이상 지원하지 않는다. 구현우리는 크게 2가지 방법을 통해 커스텀을 해보려고한다.첫 번째는 가장 많이 쓰이는 UITextField 또는 UITextView에서 커스텀을 해보는 것두 번째는 그 외의 뷰에 메뉴를 띄우는 동작으로 나눠 진행해보자. 1. U..
[백준] 1520 내리막 길
·
PS/백준
문제https://www.acmicpc.net/problem/1520 입력n, m = 지도의 행 , 열 길이 arr: [[Int]] = 각 지점의 높이결과ans: Int = 이동 가능한 총 경로 수해석내리막길인지 판별한후 dfs를 통해 목적지에 도달 후 return을 통해 카운팅을 해주자.  코드import Foundationlet nm = readLine()!.components(separatedBy: " ").map{Int($0)!}let (n,m) = (nm[0], nm[1])var arr: [[Int]] = []for _ in 0.. Int { if x == n-1 && y == m-1 { cache[x][y] = 1 return 1 } if..
[백준] 2294 동전 2
·
PS/백준
문제https://www.acmicpc.net/problem/2294 입력n = 동전의 종류 (1~100)k = 목표 금액 (1~10,000)coins = 각 동전 금액결과ans = k금액을 만들기위해 사용한 동전의 최소 개수. 불가능한 경우에는 -1해석이전에 풀었던 동전1 문제를 최소 개수 구하는 점화식으로 바꾸면 끝dp[i] = i 금액을 만들기위해 사용한 최소 개수 코드import Foundationlet nk = readLine()!.components(separatedBy: " ").map{Int($0)!}let (n, k) = (nk[0], nk[1])var coins: [Int] = []for _ in 0.. k { continue } for i in 0...k-coin { ..
[백준] 2293 동전 1
·
PS/백준
문제https://www.acmicpc.net/problem/2293 입력n = 동전의 종류 (1~100)k = 목표 금액 (1~10,000)coins = 각 동전 금액결과ans: Int = k 목표 금액을 만들 수 있는 경우의 수해석dp를 통한 경우의 수를 카운팅하는 문제 느낌이다. dp 배열의 규칙은 다음과 같다. dp[i] = i원을 만들 수 있는 경우의 수   dp 배열을 저렇게 잡으면 점화식은 이렇게 따오를 것 같다 C를 만들기 위해 B는 동전 A가 부족한 상황이면dp[c] = dp[b] + dp[a] 상황이다.코드import Foundationlet nk = readLine()!.components(separatedBy: " ").map{Int($0)!}let (n,k) = (nk[0], nk..
[백준] 9251 LCS
·
PS/백준
문제https://www.acmicpc.net/problem/9251입력s1 = 문자열s2 = 문자열최대 1000글자결과ans: Int = 가장 긴 부분 수열의 길이해석LCS((Longest Common Subsequence))이므로 dp가 가장 먼저 생각난다. 점화식dp[n][m] = s1의 n번째 s2[m]번째 문자까지 가장 긴 부분 수열의 길이(if \ s[i] == s[j]),  (dp[i][j] = dp[i-1][j-1] +1 )  ,같은 문자를 찾으면 바로 직전 최장 부분 수열 + 1 (else) (dp[i][j] = max(dp[i-1][j], dp[i][j-1]) ,같은 문자가 없을 경우 이전 경우의 수에서 가장 긴 것을 저장 S1 = ACAYKP, S2 = CAPCAK 일 경우 dp 배열..
UISearchController
·
iOS/UIKit
검색 기능은 대부분 서비스에 필수적으로 있는 기능이다.다양한 스타일로 커스텀이 많이 되어있고 내가 참여하고 있는 왁타버스 뮤직팀의 검색 기능 역시 커스텀하여 사용했다. 처음부터 커스텀을 통해 개발하여 기본적인 기능으로는 만들어볼 기회가 없었다.이번 시간은 애플이 자체적으로 만들어 놓은 UISearchController 기능을 통해 같은 기능을 구현해보자. 실제 서비스1. 왁타버스 뮤직 세 화면은 앞서 설명한 왁타버스 뮤직앱의 검색화면이다.검색 전 - 추천 컨텐츠검색 중 - 최근 검색어검색 후 - 검색 결과한번 애플 앱도 살펴보자. 2.  앱 스토어 왁타버스 뮤직앱과 정확히 일치하는 3단 구성이다. 즉, 애플에서도 이 구성을 구현할 수 있게 만들어놨다는 것이제는 간단하게 만들어보자.구현내용을 간단히 살펴보..