[구현]
입력은 문자열인데, 문자열은 N, W, S, E로 이루어진 문자열이다.
North, West, South, East로 각각 움직이는 것이고, (0, 0)에서 시작한다.
지나갔던 좌표인 경우 True
지나간적이 없는 좌표인 경우는 False
를 return 하면 된다.
Example 1:
Example 2:
나는 이 문제를 반복문을 통해 문자를 읽고, 좌표를 계산을 했다.
좌표 계산 후, 계산 값을 지나갔던 좌표를 모아둔 list에서 탐색을 하고 아래와 같은 동작을 했다.
- 지나간적 없는 문자열일경우 list에 append
- 지나간적 있는 문자열인 경우 바로 return True
문자열이 끝난 경우 return False
class Solution:
def isPathCrossing(self, path: str) -> bool:
route = [[0, 0]]
x = y = 0
for direction in path:
if direction == 'N':
y += 1
elif direction == 'S':
y -= 1
elif direction == 'E':
x += 1
elif direction == 'W':
x -= 1
if [x, y] in route:
return True
else:
route.append([x, y])
return False
[Programmers][Python] 할인 행사 (0) | 2023.12.26 |
---|---|
[LeetCode][Python]1758. Minimum Changes To Make Alternating Binary String (0) | 2023.12.26 |
[LeetCode][Python] 1422. Maximum Score After Splitting a String (0) | 2023.12.22 |
[docker] 마운트 후, volume 삭제 (0) | 2023.03.30 |
[python]dict? 해시? (0) | 2023.03.30 |
댓글 영역