프로그래머스
-
import Foundation func solution(_ queue1:[Int], _ queue2:[Int]) -> Int { let array = queue1 + queue2 var left = 0 var right = queue1.count var answer = 0 var sum1 = queue1.reduce(0, +) var sum2 = queue2.reduce(0, +) let goal = (sum1 + sum2) / 2 if (sum1 + sum2) % 2 != 0 { return -1 } while right < array.count && left
[Swift] 두 큐 합 같게 만들기import Foundation func solution(_ queue1:[Int], _ queue2:[Int]) -> Int { let array = queue1 + queue2 var left = 0 var right = queue1.count var answer = 0 var sum1 = queue1.reduce(0, +) var sum2 = queue2.reduce(0, +) let goal = (sum1 + sum2) / 2 if (sum1 + sum2) % 2 != 0 { return -1 } while right < array.count && left
2023.06.17 -
import Foundation var dict = [String: Int]() // nCk 를 모두 구해서 dict에 저장 func combination(_ str: [Character], _ target: Int) { let len = str.count func combi(_ index: Int, _ depth: Int, _ temp: String) { if target == depth { if dict[temp] == nil { dict[temp] = 0} dict[temp]! += 1 } for i in index.. [String] { var result = [String]() for k in course { for order in orders where order.count >= k { com..
[Swift] 메뉴 리뉴얼import Foundation var dict = [String: Int]() // nCk 를 모두 구해서 dict에 저장 func combination(_ str: [Character], _ target: Int) { let len = str.count func combi(_ index: Int, _ depth: Int, _ temp: String) { if target == depth { if dict[temp] == nil { dict[temp] = 0} dict[temp]! += 1 } for i in index.. [String] { var result = [String]() for k in course { for order in orders where order.count >= k { com..
2023.06.17 -
import Foundation extension String { var convert: String { self.replacingOccurrences(of: "C#", with: "c") .replacingOccurrences(of: "D#", with: "d") .replacingOccurrences(of: "F#", with: "f") .replacingOccurrences(of: "G#", with: "g") .replacingOccurrences(of: "A#", with: "a") } } func solution(_ m:String, _ musicinfos:[String]) -> String { let m = m.convert var result: [(title: String, time: In..
[Swift] [3차] 방금그곡import Foundation extension String { var convert: String { self.replacingOccurrences(of: "C#", with: "c") .replacingOccurrences(of: "D#", with: "d") .replacingOccurrences(of: "F#", with: "f") .replacingOccurrences(of: "G#", with: "g") .replacingOccurrences(of: "A#", with: "a") } } func solution(_ m:String, _ musicinfos:[String]) -> String { let m = m.convert var result: [(title: String, time: In..
2023.05.13 -
import Foundation func solution(_ n:Int) -> [Int] { var n = n var arr: [[Int]] = [[Int]](repeating: Array(repeating: 0,count: n), count: n) var row = -1 var col = 0 var count = 0 var value = 1 while 0 < n { count = 0 // 행에 따라 값을 변경 while (count < n) { row += 1 arr[row][col] = value value += 1 count += 1 } count = 0 while (count < n-1) { // 마지막행의 첫열의 값은 위에서 채웠기 때문에 다음열부터 값을 저장 col += 1 arr[row][c..
[Swift] 삼각 달팽이import Foundation func solution(_ n:Int) -> [Int] { var n = n var arr: [[Int]] = [[Int]](repeating: Array(repeating: 0,count: n), count: n) var row = -1 var col = 0 var count = 0 var value = 1 while 0 < n { count = 0 // 행에 따라 값을 변경 while (count < n) { row += 1 arr[row][col] = value value += 1 count += 1 } count = 0 while (count < n-1) { // 마지막행의 첫열의 값은 위에서 채웠기 때문에 다음열부터 값을 저장 col += 1 arr[row][c..
2023.04.30 -
큐를 이용한 풀이 하지만 시간초과 오류 import Foundation func solution(_ sequence:[Int], _ k:Int) -> [Int] { var sum = 0 var count = sequence.count var queue: [Int] = [] var result: [Int] = [sequence.count + 1, sequence.count + 1] for index in 0..
[Swift] 연속된 부분 수열의 합큐를 이용한 풀이 하지만 시간초과 오류 import Foundation func solution(_ sequence:[Int], _ k:Int) -> [Int] { var sum = 0 var count = sequence.count var queue: [Int] = [] var result: [Int] = [sequence.count + 1, sequence.count + 1] for index in 0..
2023.04.30 -
import Foundation func solution(_ 토핑모음:[Int]) -> Int { var 형의케이크토핑: [Int : Int] = [:] var 동생의케이크토핑: [Int : Int] = [:] var 자르는방법 = 0 토핑모음.forEach { 토핑종류 in if 형의케이크토핑[토핑종류] != nil { 형의케이크토핑[토핑종류]! += 1 } else { 형의케이크토핑[토핑종류] = 1 } } for 토핑종류 in 토핑모음 { if 동생의케이크토핑[토핑종류] != nil { 동생의케이크토핑[토핑종류]! += 1 } else { 동생의케이크토핑[토핑종류] = 1 } if let 형의토핑개수 = 형의케이크토핑.removeValue(forKey: 토핑종류), 형의토핑개수 - 1 != 0 { ..
[Swift] 롤케이크 자르기import Foundation func solution(_ 토핑모음:[Int]) -> Int { var 형의케이크토핑: [Int : Int] = [:] var 동생의케이크토핑: [Int : Int] = [:] var 자르는방법 = 0 토핑모음.forEach { 토핑종류 in if 형의케이크토핑[토핑종류] != nil { 형의케이크토핑[토핑종류]! += 1 } else { 형의케이크토핑[토핑종류] = 1 } } for 토핑종류 in 토핑모음 { if 동생의케이크토핑[토핑종류] != nil { 동생의케이크토핑[토핑종류]! += 1 } else { 동생의케이크토핑[토핑종류] = 1 } if let 형의토핑개수 = 형의케이크토핑.removeValue(forKey: 토핑종류), 형의토핑개수 - 1 != 0 { ..
2023.04.29 -
import Foundation func solution(_ x: Int, _ y: Int, _ n: Int) -> Int { var arr = Array(repeating: Int.max, count: y + 1) arr[x] = 0 for i in x...y where arr[i] != Int.max { var num = i if num + n
[Swift] 숫자 변환하기import Foundation func solution(_ x: Int, _ y: Int, _ n: Int) -> Int { var arr = Array(repeating: Int.max, count: y + 1) arr[x] = 0 for i in x...y where arr[i] != Int.max { var num = i if num + n
2023.04.29 -
import Foundation func solution(_ numbers:String) -> Int { var numbers = numbers.map { String($0) }.sorted(by: >) let max = Int(numbers.joined())! if max < 2 { return 0 } if max < 4 { return 1 } var result: Set = [] var isPrime: [Bool] = Array(repeating: true, count: max + 1) var visited: [Bool] = Array(repeating: false, count: numbers.count) isPrime[0] = false isPrime[1] = false for i in 2...ma..
[Swift] 소수 찾기import Foundation func solution(_ numbers:String) -> Int { var numbers = numbers.map { String($0) }.sorted(by: >) let max = Int(numbers.joined())! if max < 2 { return 0 } if max < 4 { return 1 } var result: Set = [] var isPrime: [Bool] = Array(repeating: true, count: max + 1) var visited: [Bool] = Array(repeating: false, count: numbers.count) isPrime[0] = false isPrime[1] = false for i in 2...ma..
2023.04.29