목록swift 알고리즘 (167)
쥐수의 공부노트

정답 : let input = readLine()!.split(separator: " ").map{Int($0)!} let n = input[0] let m = input[1] let array = readLine()!.split(separator: " ").map{Int($0)!}.sorted() var st = 0 var ed = array[n-1] func solve(x : Int) -> Bool { var cur = 0 for i in 0.. x { cur += array[i] - x } else { continue } } return cur >= m } while st < ed { var mid = (st + ed + 1) / 2 if solve(x: mid) { st = mid } else {..

정답 : let n = Int(readLine()!)! let distance = readLine()!.split(separator: " ").map{Int($0)!} let price = readLine()!.split(separator: " ").map{Int($0)!} var result = 0 var minValue = price[0] for i in 0.. price[i] { minValue = price[i] } result += minValue * distance[i] } print(result) 해당 문제는 distance와 price를 곱한 뒤 result에 더하면 된다. 하지만, 가격을 측정해야 하기에, minValue 와 다음 주유소의 가격을 비교하여, 가격이 낮은 주유소의 값을 가져..

정답 : let input = readLine()!.split(separator: "-") var result = 0 for i in input[0].split(separator: "+") { result += Int(i)! } for i in input[1...] { for j in i.split(separator: "+") { result -= Int(j)! } } print(result) 해당 문제는 수식을 받는데, -를 기점으로 받는다. 예를 들어, 10 + 20 - 30 - 40 + 50 - 60 이 있다고 치자. 우리가 구한 최솟값은 10 + 20 - 30 - (40 + 50) - 60 이 될것이다. -로 split을 주었기 때문에, input[0] 에는 10 + 20 , input[1]에는 ..

정답 : let n = Int(readLine()!)! var re = n var input = readLine()!.split(separator: " ").map{Int($0)!} var result = 0 input.sort() for i in 0..

정답 : let n = Int(readLine()!)! var array = Array(repeating: false, count: 100000) var team1 = 0 var team2 = 0 var score = Array(repeating: Array(repeating: 0, count: n), count: n) var minValue = Int.max for i in 0..

정답 : let n = Int(readLine()!)! let num = readLine()!.split(separator: " ").map{Int($0)!} var oper = readLine()!.split(separator: " ").map{Int($0)!} var maxValue = Int.min var minValue = Int.max func compare(check : Int, d : Int) { if d == n { maxValue = max(maxValue, check) minValue = min(minValue, check) return } for i in 0..

첫번째 풀이 : let input = readLine()!.split(separator: " ").map{Int($0)!} let n = input[0] let m = input[1] var array : [Int] = [] var issue = Array(repeating: false, count: n + 1) var result = "" func check(num : Int) { var state = true if num == m { for i in 0.. 0, array[i] < array[i - 1]{ state = false } } if state { result += "\(array.map{String($0)}.joined(separator: " "))" result += "\n" } retu..