알고리즘

릿코드 1496. Path Crossing 코틀린

rkrkrr0101 2023. 12. 23. 14:56

그냥 x,y현재좌표만들고 트래킹하면서 현재위치 방문리스트에 있으면 true리턴 없으면 방문리스트에 현재위치추가

정답

class Solution {
    fun isPathCrossing(path: String): Boolean {
        var curXY:Pair<Int,Int> = Pair(0,0)
        val coordinateList = mutableListOf<Pair<Int, Int>>()
        coordinateList.add(Pair(0,0))

        for (i in path){
            val tempXY=curCoordinate(i)
            curXY=Pair(curXY.first+tempXY.first,curXY.second+tempXY.second)
            if (coordinateList.contains(curXY)){
                return true
            }
            coordinateList.add(curXY)
        }

        return false
    }
    private fun curCoordinate(way:Char):Pair<Int,Int>{
        var x=0
        var y=0
        if (way=='N'){
            y+=1
        }
        if (way=='S'){
            y-=1
        }
        if (way=='E'){
            x+=1
        }
        if (way=='W'){
            x-=1
        }
        return Pair(x,y)
    }
}