[Swift] 짝지어 제거하기
import Foundation struct Stack { private var stack: [T] = [] public var count: Int { return stack.count } public var isEmpty: Bool { return stack.isEmpty } public mutating func push(_ element: T) { stack.append(element) } public mutating func pop() -> T? { return isEmpty ? nil : stack.popLast() } } func solution(_ s:String) -> Int{ var answer = Stack() for s in Array(s) { if !answer.isEmpty { le..
2023.02.05
[Swift] 점프와 순간 이동
import Foundation func solution(_ n:Int) -> Int { var n = n var ans:Int = 0 while 0 < n { if n % 2 != 0 { ans += 1 } n /= 2 } return ans }
2023.02.05
[Swift] 이진 변환 반복하기
import Foundation func solution(_ s:String) -> [Int] { var s = s var count = 0 var zeroCount = 0 while s != "1" { count += 1 zeroCount += s.components(separatedBy: "1").joined().count s = String(s.components(separatedBy: "0").joined().count, radix: 2) } return [count, zeroCount] }
2023.02.05
[Swift] 위장
import Foundation func solution(_ clothes:[[String]]) -> Int { let count = Set(clothes.compactMap({ $0.last })).map { type in return clothes.filter { $0.last == type }.count + 1 } return count.reduce(1) { $0 * $1 } - 1 }
2023.02.04
[Swift] 올바른 괄호
import Foundation func solution(_ s:String) -> Bool { var left = 0 var right = 0 for c in s { switch c { case "(" : left += 1 case ")" : right += 1 default: continue } if right > left { return false } } return left == right ? true :false }
2023.02.04
[Swift] 예상 대진표
import Foundation func solution(_ n:Int, _ a:Int, _ b:Int) -> Int { var n = n var a = a var b = b var answer = 0 repeat { a = (a + 1) / 2 b = (b + 1) / 2 answer += 1 } while a != b return answer }
2023.02.04
[Swift] 영어 끝말잇기
func solution(_ n:Int, _ words:[String]) -> [Int] { for i in 1..
2023.02.04
[Swift] 멀리 뛰기
func solution(_ n:Int) -> Int { if n < 3 { return n } var f0 = 1 var f1 = 2 var f2 = 0 for _ in 3...n { f2 = (f0 + f1) % 1234567 f0 = f1 f1 = f2 } return f2 }
2023.02.04
[Swift] 다음 큰 숫자
import Foundation func solution(_ n:Int) -> Int { var answer : Int = n + 1 while true { if n.nonzeroBitCount == answer.nonzeroBitCount { break; } answer += 1 } return answer }
2023.02.04