https://www.acmicpc.net/problem/2579 계단의 점화식 문제.특정 계단에서 얻을 수 있는 점수는 다음과 같다.n-1, n 이렇게 연속적으로 접근n-2, n 이렇게 떨어져서 접근따라서 다음과 같은 점화식이 세워짐dp[i-3]+stair[i-1]+stait[i] (연속적으로 계단에 접근한 경우)dp[i-2]+stair[i] (비연속적으로 계단에 접근한 경우)import Foundationlet n = Int(readLine()!)!var stairtArr: [Int] = []for _ in 0..
https://www.acmicpc.net/problem/2805 이분 탐색을 이용하여 자르는 부분의 범위를 구하는 문제. import Foundationlet nm = readLine()!.split(separator: " ").map{Int($0)!}let treeArr = readLine()!.split(separator: " ").map{ Int($0)! }var start = 1var end = treeArr.max()!while start mid { count += tree-mid } } if count >= nm[1] { start = mid+1 } else { end = mid-1 }}print(end)
https://www.acmicpc.net/problem/1697 문제 풀이bfs로 최단 경로를 탐색하는 방식으로 풀이. 각 점마다 +1, -1, *2씩 해주므로 한번 방문한 점은 다시 방문할 필요가 없으므로 방문처리를 하여 문제를 해결. import Foundationstruct Node { let count: Int let location: Int}let nk = readLine()!.split(separator: " ").map{ Int($0)! }var visited = Array(repeating: false, count: 100001)func solution() { var queue: [Node] = [.init(count: 0, location: nk[0])] if nk..
면접 때 받은 질문인데... 머리로는 이해하고 있지만, 막상 입으로 설명하려고 하니 뭐라 설명할지 모르겠어서 이참에 정리해 본다. Opaque Type이란?protocol의 associated type의 타입을 모르는 상태에서 객체의 기능을 사용하는 타입이다. 제네릭의 반대라고 생각하면 편하다. 무슨 소리냐면.. 제네릭을 사용할 때는 구현부에서 어떤 타입을 사용할지 모르는 상태로 구현한다.class Stack { var arr: [T] init(arr: [T]) { self.arr = arr } func input(_ obj: T) { arr.append(obj) }}그 후 사용 및 호출하는 쪽에서 상세한 타입을 지정한다.let stack..
https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 문제 풀이: 위상정렬을 이용하여 풀이했다. 유의해야할 점은 노드를 큐에 추가하지 않더라도, 시간을 갱신 해야만 한다는 점이다. import Foundation final class FileIO { private var buffer:[UInt8] private var index: Int init(fileHandle: FileHandle = FileHandle.standardInput) { bu..
UIImageView를 extension을 해서 UICollectionViewDelegate의 collectionView(_:cellForItemAt:)이 호출되는 시점에서 cell의 UIImageView에서 이미지를 비동기를 가져오는 작업을 수행(Cell이 이미지를 가져오는 작업을 수행)할 경우 다음과 같은 문제가 발생할 수 있습니다. 셀 재사용으로 인한 이미지 비동기 작업 중첩 View가 이미지 작업에 관한 책임을 가지게 되는 문제 셀 재사용으로 인한 이미지 비동기 작업 중첩 이미지를 가져오는 작업이 완료되기 전에 셀의 재사용으로 인해 이미지를 가져오는 비동기 작업을 계속해서 수행하게 될 경우 셀의 이미지가 중첩된 이미지를 가져오는 비동기 작업이 완료되는 순서대로 바뀌는 문제입니다. View가 이미지..