νλ‘κ·Έλλ°/μκ³ λ¦¬μ¦ νμ΄ Swift
[μ΄μ½ν ] 4.ꡬν - 2. μμ€μ λμ΄νΈ (Swift)
λΉλΉ bibi
2022. 12. 13. 15:19
βμ΄κ²μ΄ μ½λ© ν μ€νΈλ€β ꡬν - 4-2. μμ€μ λμ΄νΈ λ¬Έμ (115νμ΄μ§)
λμ΄νΈμ νμ¬ μμΉκ° βa1βκ³Ό κ°μ΄ μ£Όμ΄μ‘μ λ, μμ§μΌ μ μλ κ²½μ°μ μλ₯Ό ꡬνλ λ¬Έμ .
λμ΄νΈκ° μμ§μΌ μ μλ μ΅λ κ²½μ°μ μλ 8κ°μ§μ΄λ€.
νμ§λ§ μμ§μ΄λ€κ° 체μ€ν(8*8) λ°μΌλ‘ λ¨μ΄μ§λ κ²½μ°λ μμ§μΌ μ μλ κ²½μ°λ‘ νμ¬ μ μΈνκ³ , λλ¨Έμ§ κ²½μ°μ μλ₯Ό ꡬνλ©΄ λλ€.
λλ κ·μΉλλ‘ μμ§μΈ λμ΄νΈμ μμΉκ° 1~8 λ²μ λ΄μ μμ λλ§ μΉ΄μ΄νΈνκ³ , κ·Έ μ΄ν©μ μΆλ ₯νλ€.
a=1, b=2, β¦ λ‘ λ³ννκΈ° μν΄μλ μμ€ν€μ½λλ₯Ό μ¬μ©νλ€. (μ°Έκ³ - λ§ν¬)
νμ΄
func implementation2(position: String) -> Int {
let positionX = Int(position.first!.asciiValue! - 96) // μμ€ν€μ½λ μ¬μ©
let positionY = Int(String(position.last!))!
print(positionX, positionY)
var answer = 0
let moves: [(x: Int, y: Int)] = [(2, 1), (2, -1), (-2, 1), (-2, -1), (1, 2), (-1, 2), (1, -2), (-1, -2)]
for move in moves {
let movedX = move.x + positionX
let movedY = move.y + positionY
if (1...8).contains(movedX) && (1...8).contains(movedY) {
answer += 1
}
}
return answer
}
implementation2(position: "a1") // 2
implementation2(position: "c2") // 6