1-1. μ λ ₯λ μκ° μ§μλΌλ©΄ 2λ‘ λλλλ€.
1-2. μ λ ₯λ μκ° νμλΌλ©΄ 3μ κ³±νκ³ 1μ λν©λλ€.
2. κ²°κ³Όλ‘ λμ¨ μμ κ°μ μμ μ 1μ΄ λ λκΉμ§ λ°λ³΅ν©λλ€.
μλ₯Ό λ€μ΄, μ£Όμ΄μ§ μκ° 6μ΄λΌλ©΄ 6 β 3 β 10 β 5 β 16 β 8 β 4 β 2 β 1 μ΄ λμ΄ μ΄ 8λ² λ§μ 1μ΄ λ©λλ€. μ μμ μ λͺ λ²μ΄λ λ°λ³΅ν΄μΌ νλμ§ λ°ννλ ν¨μ, solutionμ μμ±ν΄ μ£ΌμΈμ. λ¨, μ£Όμ΄μ§ μκ° 1μΈ κ²½μ°μλ 0μ, μμ μ 500λ² λ°λ³΅ν λκΉμ§ 1μ΄ λμ§ μλλ€λ©΄ β1μ λ°νν΄ μ£ΌμΈμ.
λ¬Έμ νμ΄
func solution(_ num:Int) -> Int {
var count: Int = 0
var val = num
while val != 1 {
if count >= 500 {
break
}
val = val % 2 == 0 ? val / 2 : (val * 3) + 1
count += 1
}
return val == 1 ? count : -1
}
μμ νμλ λ¬Έμ μ²λΌ μ¬λ¬ ν¨μλ₯Ό μ¬μ©νμ¬ λ¬Έμ νμ΄λ₯Ό μλνμλ€.
num κ°μ νμ©νμ¬ λ¬Έμμ΄μ λ°λ λ°°μ΄μ λ§λ€μ΄, μ νμ΄μ μΌνμ°μ° κ²°κ³Όλ₯Ό λ°°μ΄μ μ
λ ₯μν¬ κ³νμ΄μλ€. μ΄ν, λ°°μ΄μ κΈΈμ΄λ₯Ό μ΄μ©νμ¬ μμ
μ λ°λ³΅ νμλ₯Ό νλ¨νκ³ arr.last == 1
μΌλ‘ μμ
μ΄ λ§λ¬΄λ¦¬λλ κ²μ νμΈνλ €κ³ μλνμλ€.
μ΄λ κ² κ΅¬μν λ°©λ²μ΄ λμ± μ§§μ μ½λλ₯Ό λ§λ€κΈ° μ¬μΈ λ― νμμΌλ, λ§μ μλμλ ꡬννκΈ° μ΄λ €μ ν¬κΈ°νμλ€... π
κ·Έλμ μΌλ¨μ λ¬Έμ νμ΄κ° κ°λ₯ν κΈ°λ₯μ μ½λλ§ κ΅¬ννμλ€..
λ€μμ λ€λ₯Έ λ°©λ²μ΄ μκ°λλ€λ©΄ λ€μ νμ΄λ³Όκ±°λ€!!
func solution(_ seoul:[String]) -> String {
var pos = seoul.firstIndex(of: "Kim")
return "κΉμλ°©μ \(pos)μ μλ€"
}
μ΄λ² λ¬Έμ λ λ€λ₯Έ λ¬Έμ λ€μ λΉν΄ λ§€μ° μ¬μ λ€! μ
λ ₯λλ λ°°μ΄ μ€, "KIM"μ΄λΌλ κ°λ§ μ°ΎμΌλ©΄ λκΈ°μ, seoul.firstIndex(of: "Kim")
μΌλ‘ ν΄λΉ κ°κ³Ό λ°°μ΄μ μΈνμ€ κ°μ λΉκ΅νμ¬ μμΉλ₯Ό μ°Ύμλ€. κ·Έλ¦¬κ³ ν΄λΉ κ°μ μ΄μ κ°μμμ λ°°μ΄ λ¬Έμ 보κ°λ²μ νμ©νμ¬ μΆλ ₯ν΄μ£Όμλ€.
import Foundation
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
var ans: Int = 0
for i in 0...absolutes.count-1 {
if signs[i] == true {
ans += absolutes[i]
}
else {
ans -= absolutes[i]
}
}
print(ans)
return ans
}
ν΄λΉ λ¬Έμ λ 맨 μ²μ λ¬Έμ μ²λΌ μ¬λ¬ ν¨μλ€κ³Ό λ¬Έμμ΄μ λ°λ λ°°μ΄μ νμ©νμ¬ ν΄κ²°νκΈ° μν΄ λ§μ μλλ₯Ό νμλ€.
νμ§λ§ μ μ½λμμ λ³Ό μ μλ―μ΄ μ€ν¨νμλ€...
κ·Έλμ λ¬Έμ 쑰건μ μλ§κ² 쑰건문μ νμ©νμ¬ λ¬Έμ λ₯Ό νμλ€. κ·Έλ¦¬κ³ μ΄λ₯Ό μ‘°κΈ λ κ°λ μ±μ λμ΄κΈ° μν΄ μΌνμ°μ°μλ₯Ό νμ©νμ¬ μλμ μ½λλ‘ λ§λ¬΄λ¦¬νμλ€.
import Foundation
func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
var ans: Int = 0
for i in 0...absolutes.count-1 {
(signs[i] == true) ? (ans += absolutes[i]) : (ans -= absolutes[i])
}
return ans
}
μλ§ λ§¨ μ²μ λ¬Έμ λ₯Ό μμ ν μ μλ λ°©λ²μ μ°Ύκ² λλ©΄, μ΄ λ¬Έμ λ λ°°μ΄κ³Ό μ¬λ¬ ν¨μλ₯Ό μ¬μ©νμ¬ νμ΄λ³Ό μ μμ κ²μ΄λ€.
λ€μμ μ΄ λ¬Έμ λ λ€μ νμ΄λ³Ό κ²μ΄λ€!!
μ΅μ λμ κ°μ΄ μμ μ μλ μν©μμ μ¬μ©νλ€. κ·Έλ¦¬κ³ λ κ°μ§ κ°λ₯μ±μ λνλ΄λ©°, λ¬Όμν ? λ₯Ό μ¬μ©νμ¬ νμνλ€.
μ΅μ λ νμ λΌλ¦¬μ μ°μ°μ λΆκ°λ₯!
var num1: Int? = 4
μ΅μ λ νμ μ μ°Ύμ보면 some, none caseλ‘ κ΅¬μ±λμ΄ μλ€!
ν΄λΉ κ°μ νμ©νμ¬ μ΅μ λ ννμ λ°μ΄ν°μ κ°μ΄ μλ μνλ‘ μ μ₯ν μ μλ€.
var num: Int? = nil
Swiftλ μ΅μ λ νμ μ νμ©νμ¬ nillμ μ²λ¦¬νκΈ°μ λ°νμ μ€λ₯λ₯Ό μ΅μν νμ¬ μμ μ μ΄λ€!
μ΅μ λ κ°μ΄ λΉκ°μΈμ§ μ‘΄μ¬νλμ§ κ²μ¬ν ν, μ‘΄μ¬νλ κ²½μ° κ·Έ κ°μ λ€λ₯Έ λ³μμ λμ μμΌ λ°μΈλ©νλ κ²μ μλ―Έν©λλ€.
μ΅μ λμ μ¬μ©νκΈ° μ μ, λ΄λΆμ λΉ κ°μ μ 무λ₯Ό 체ν¬νκ³ μΈλν ν΄μ£Όλ κ²μ΄ κ°μ λ‘ μΈλννλ κ²λ³΄λ€ ν¨μ¬ μμ νλ€.
First-In-First-Out (FIFO)
struct Queue<T> {
private var queue: [T] = []
public var count: Int {
return queue.count
}
public var isEmpty: Bool {
return queue.isEmpty
}
public mutating func enqueue(_ element: T) {
queue.append(element)
}
public mutating func dequeue() -> T? {
return isEmpty ? nil : queue.removeFirst()
}
}
var queue = Queue<Int>()
queue.enqueue(10)
queue.enqueue(20)
queue.dequeue() // 10
Last-In-First-Out (LIFO)
struct Stack<T> {
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()
}
}
var stack = Stack<Int>()
stack.push(10)
stack.push(20)
stack.pop() // 20
μ΄μ κ°μ μ 체 λΆλ μ€ μ λ°λ³΄λ€ μ‘°κΈ λ λ€μλλ°, λ΄μ©μ μ 리νλ©΄μ λμμ κ°μλ₯Ό μκ°νλκΉ μλκΈ° λ무 λλ¦°κ±° κ°λ€..
κ·Έλμ λλ¨Έμ§ λ΄μ©λ€μ κ°μλ₯Ό λ€ λ£κ³ λ΄μ©μ΄ μ΄ν΄λλ©΄ λ€μ μ 리ν΄λ³΄κ² λ€!
κ°μ λ΄μ©μ μ½λλ‘ μ 리νλκΉ κΉλνκ³ λ³΅μ΅λ λΌμ λ무 μ μ½μμ΅λλ€ :)