요즘 미국에서 미성년자 sns 규제가 본격화 되면서 구글과 apple에서도 관련 api를 발표했고, 26년 1월 1일부터 시행되는 SB2420으로 인해 미국 텍사스에서 서비스 하는 앱들은 법규를 준수하기 위해 이에 대한 대응이 필요하다고 한다. 참고로 해당 api들은 iOS 26.2 이상 버전부터만 사용 가능하다. 앱 사용자 나이 받아오기target -> Capability에서 Declared Age Range 추가 do { let result = try await AgeRangeService.shared.requestAgeRange(ageGates: 18, in: vc) switch result { case .declinedSharing: /..
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..