목록전체 글 (255)
HIT해
import Foundationvar flag = [Bool](repeating: false, count: 10001)var result : [Int] = []var nums : [Int] = []func main() { let NM = readLine()!.split(separator: " ").map { Int($0)! } let (N,M) = (NM[0], NM[1]) // N 총 숫자, M depth let XYZ = readLine()!.split(separator: " ").map { Int($0)! } nums = XYZ.sorted() backtracking(N: N, M: M, depth: 0)}func backtracking(N : Int, M ..
import Foundationvar flag : [Bool] = []var result : [Int] = []func main() { let NM = readLine()!.split(separator: " ").map{ Int($0)! } let (N , M) = (NM[0], NM[1]) flag = [Bool](repeating: false, count: N+1) logic(N: N, M: M, depth: 0) }// 이 함수에서 M 카운트까지 도달하면 돌아오기func logic(N : Int, M : Int, depth : Int) { if M == depth { // 프린트 print(result.map..
1. 최대 공약수let NM = readLine()!.split(separator: " ").map{ Int($0)! } var small = min(NM[0], NM[1])var large = max(NM[0], NM[1])var j = 0while(small != 0) { j = large % small large = small small = j}large // 최대 공약수 2. 최소 공배수두 수의 곱을 최대 공약수로 나누면 된다!(large * small) / gcd(large, small) // 최대 공약수 함수 3. 소수 구하기해당 수가 소수인지 아닌지 판별하는 방법은 2부터 제곱근+1 까지의 수를 나누어서 확인var num = Int(readLine()!)!for i in ..
https://www.acmicpc.net/problem/17425 약수의 합 공식인 N/i * i 을 하면 시간 초과가 난다. 이 문제는 dp로 약수들의 합을 계산해둔 배열과누적합을 더해둔 배열을 이용해서 해결해야한다. import Foundationfunc main(){ // 약수의 합 var dp = [Int](repeating: 1, count: 1000001) // 누적합 var s = [Int](repeating: 1, count: 1000001) for i in 2...1000000 { var j = 1 while i*j
func main() { let NM = readLine()!.split(separator: " ").map{ Int($0)! } let (X,Y) = (NM[0], NM[1]) // factorial 함수를 Double로 계산하므로, 나누기 연산도 Double로 처리 후 결과를 Int로 변환 let result = factorial(num: X) / (factorial(num: Y) * factorial(num: X - Y)) print(Int(result)) // 최종 결과를 Int로 변환해 출력}func factorial(num: Int) -> Double { return num == 0 ? 1 : (1...num).map { Double($0..
1. 기본 배열 선언빈 배열 선언var emptyArray: [Int] = []타입 지정 없이 빈 배열 선언var emptyArray = [Int]() // Int 타입의 빈 배열2. 초기화된 배열 선언정적 값으로 초기화var staticArray: [Int] = [1, 2, 3, 4, 5] 타입 지정 없이 초기화var anotherStaticArray = ["Apple", "Banana", "Cherry"] // String 타입의 배열 3. 특정 크기로 초기화기본값으로 초기화var zeroArray: [Int] = Array(repeating: 0, count: 5) // [0, 0, 0, 0, 0]4. 범위 기반 초기화범위로 초기화var rangeArray: [Int] = Array(1...10) ..
https://school.programmers.co.kr/learn/courses/30/lessons/120910/solution_groups?language=swift 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr Swift 상에서 제곱을 활용하는 방식이다. 비트 연산자를 사용pow를 사용비트연산자를 사용하는 방법은1 pow를 사용하는 방법Double로 반환하기에 Int로 변환해야한다.Int(pow(Float(2), Float(t))) pow의 인자값으로는 Float이나 Double이 들어올 수 있다.
카카오톡 처럼 동적으로 변경되는 텍스트 입력창을 만들어야했고같이 프로젝트를 진행하는 동료가 이를 구현하고자 3일동안 텍스트필드에 메달렸다. 밤낮으로 힘들어하는 동료를 돕고자 코드를 천천히 뜯어보았다. UIViewRepresentable 안에서 TextField를 반환하고 updateUIView에서 입력된 텍스트를 기반으로 텍스트 필드의 frame을 변경하도록 만들었다. makeUIView와 updateUIView에서 frame으로 높이조절을 하더라도 SwiftUI 코드에서 해당 TextField를 불러왔을때 조정된 크기가 아닌 고정 크기를 가진채 나왔다. 그 이유는 SwiftUI에서는 UIViewRepresntable 안에서 지정한 크기는 적용되지 않고 SwiftUI 코드에서 frame을 지정해야만 ..