백준 - 1913 달팽이

AekT·2021년 11월 3일
post-thumbnail

백준 1913 달팽이

문제 : https://www.acmicpc.net/problem/1913

Swift :

import Foundation

let dx = [1,0,-1,0]
let dy = [0,1,0,-1]
let n = Int(readLine()!)!
let m = Int(readLine()!)!
var arr = Array(repeating: Array(repeating: 0, count: n), count: n)
var num = n*n
if n == 1{
    print("1")
    print("1 1")
    exit(0)
}
for p in 0..<n/2{
    for i in p..<n-p{
        arr[i][p] = num
        num -= 1
    }
    for i in p+1..<n-p{
        arr[n-p-1][i] = num
        num -= 1
    }
    for i in stride(from: n-p-2, through: p, by: -1){
        arr[i][n-p-1] = num
        num -= 1
    }
    for i in stride(from: n-p-2, to: p, by: -1){
        arr[p][i] = num
        num -= 1
    }
    arr[n/2][n/2] = 1
    
    
}
var res = ""
for (i,j) in arr.enumerated(){
    for (k,l) in j.enumerated(){
        if l == m {res="\(i+1) \(k+1)"}
        print(arr[i][k], terminator: " ")
    }
    print("")
}
print(res)
profile
으악

0개의 댓글