MUKER_DEV with iOS

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ฐฉ๋ฌธ ๊ธธ์ด ๋ณธ๋ฌธ

๐Ÿค– ์•Œ๊ณ ๋ฆฌ์ฆ˜/programmers

[swift] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ๋ฐฉ๋ฌธ ๊ธธ์ด

MUKER 2023. 4. 7. 13:39
 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr


๋‚˜์˜ ํ’€์ด

func solution(_ dirs:String) -> Int {
    var now = (0,0)
    var visited = Set<[Int]>()
    
    for i in dirs {
        var move = (0,0)
        var new = (0,0)
        switch i {
        case "U": move = (1,0)
        case "D": move = (-1,0)
        case "L": move = (0,-1)
        case "R": move = (0,1)
        default: break
        }
        new.0 = now.0 + move.0
        new.1 = now.1 + move.1
        guard new.0 >= -5 && new.0 <= 5 && new.1 >= -5 && new.1 <= 5 else { continue }
        if !visited.contains([new.0,new.1,now.0,now.1]) {
            visited.insert([new.0,new.1,now.0,now.1])
            visited.insert([now.0,now.1,new.0,new.1])
        }
        now = new
    }
    return visited.count / 2
}