코딩테스트 풀이에 유용하게 쓰일 코드들 모음
let numbers = (x: 1...9, y: 1...9) //tuple
for i in numbers.x {
for j in numbers.y {
print("\(i) x \(j) = \(i * j)")
}
}
//1 x 1 = 1
//1 x 2 = 2
//1 x 3 = 3
//1 x 4 = 4
.
.
.
func solution(_ n:Int) -> Int
{
var answer:Int = 0
let nArray = String(n).map { Int(String($0))! }
answer = nArray.reduce(0, +)
return answer
}
solution(12345) //15
func solution(_ s1:[String], _ s2:[String]) -> Int {
return s1.filter{s2.contains($0)}.count
}
solution(["a", "b", "c"], ["com", "b", "d", "p", "c"]) //2
solution(["n", "omg"], ["m", "dot"]) //0
func solution (num: Double, power: Double) -> Double {
return pow(num, power)
}
solution(num: 2, power: 4) //16.0
func solution(_ n:Int, _ t:Int) -> Int { //a << n의 값은 a * 2^n^의 값과 같다.
return n << t
}
solution(2, 4) // 32
func solution(_ rsp: String) -> String {
return rsp.map{$0 == "0" ? "5" : $0 == "2" ? "0" : "2"}.joined()
}
solution("0") //5
func solution(_ numbers: [Int]) -> Int {
let numbers = numbers.sorted() //[-5, -3, 1, 2, 4]
return max(numbers[0] * numbers[1], numbers[numbers.count-1] * numbers[numbers.count-2])
}
solution([1,2,-3,4,-5]) //15
func solution(_ n:Int) -> Int {
return (1...n).reduce(1) { $0 * $1 } //5! 5*4*3*2*1
}
solution(5) //120
func solution(_ array: [Int], _ n: Int) -> Int {
return array.min(by: { (abs($0 - n), $0) < (abs($1 - n), $1) })!
}
solution([1,4,2], 3) //2
func solution(_ s:String) -> String {
return String(Dictionary(grouping: s) { $0 }.values.filter { $0.count == 1 }.joined().sorted())
}
solution("abcddeb") //ace
func solution(_ array: [Int]) -> Int {
let sorted = Dictionary(grouping: array) { $0 }.sorted { $0.value.count > $1.value.count }
return sorted.count > 1 && sorted[0].value.count == sorted[1].value.count ? -1 : sorted[0].key
}
solution([1,2,3,4,5,1]) //1
let newBabling: [String] = ["11", "uuu1", "1", "111", "1a"]
print(newBabling.compactMap { str in Int(str) }.count) //3 (compactMap으로 nil이 제거됨)
func gcd(_ a: Int, _ b: Int) -> Int {
if a % b == 0 {
return b
} else {
return gcd(b, a % b)
}
}
print(gcd(192, 162)) //6