Bibi's DevLog πŸ€“πŸŽ

[μ΄μ½”ν…Œ] 4.κ΅¬ν˜„ - 2. μ™•μ‹€μ˜ λ‚˜μ΄νŠΈ (Swift) λ³Έλ¬Έ

ν”„λ‘œκ·Έλž˜λ°/μ•Œκ³ λ¦¬μ¦˜ 풀이 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