[백준] 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단 구성이다. 즉, 애플에서도 이 구성을 구현할 수 있게 만들어놨다는 것이제는 간단하게 만들어보자.구현내용을 간단히 살펴보..
[프로그래머스] 무인도 여행
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr입력 maps:[String] = 지도 문자열 maps[i] - "X" = 바다 - 숫자 = 무인도에 머물 수 있는 수결과ans: [Int] = 각 섬마다 최대 머물 수 있는 일 수 , 하나 없으면 [-1]해석X가 아니면 섬이므로 일단 들어가서 연결되어있는 모든 섬을 방문하여 숫자를 더한 다음 결과 배열에 담는다.방문했는지 여부를 알아야하니 visited 배열필요 코드import Foundationextension String { subscript(_ index: Int) -> String { ..
[프로그래머스] 미로 탈출
·
PS/프로그래머스
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 입력maps:[String] = 맵정보를 나타냄O = 빈공간X = 벽S = 시작지점L = 레버E = 탈출결과ans: Int = 레버를 올린 후 도착지점까지 최소 시간, 도착 불가면 -1해석전형적인 bfs를 통한 최단거리 찾기 문제인 것 같다.그런데 하나 다른 점은 반든시 레버 지점에 도착한 후 출구로 가야한다.그렇다면 bfs를 두번 진행하면 될 듯하다. 1. 출발지 -> 레버2. 레버 -> 출구  코드import Foundationextension String { subscript(_ index: I..