[문제]
https://school.programmers.co.kr/learn/courses/30/lessons/172928
[풀이]
1. 방향 딕셔너리를 생성해줌
2. 시작 지점 좌표를 구해주고
3. 명령을 하나씩 꺼내서 방향과 거리로 분리하고 탐색하는 과정 반복
4. 탐색할 때 명령을 수행할 수 있는지 여부를 뜻하는 flag 변수 설정
5. 수행할 수 있다면 최종적으로 이동할 위치인 좌표로 수정
def solution(park, routes):
direction = {'N':(-1, 0), 'E':(0, 1), 'S':(1, 0), 'W':(0, -1)}
n, m = len(park), len(park[0])
cx, cy = 0, 0
for i in range(n):
for j in range(m):
if park[i][j] == 'S':
cx, cy = i, j
for order in routes:
key, cnt = order.split()
dx, dy = direction[key]
x, y = cx, cy
flag = True
for _ in range(int(cnt)):
nx, ny = x + dx, y + dy
if not (0 <= nx < n and 0 <= ny < m and park[nx][ny] != 'X'):
flag = False
break
x, y = nx, ny
if flag:
cx, cy = x, y
return [cx, cy]
'코드카타 > Python' 카테고리의 다른 글
82. 멀리 뛰기 (1) | 2025.01.05 |
---|---|
신고 결과 받기 (0) | 2025.01.02 |
달리기 경주 (1) | 2024.12.30 |
[PCCP 기출문제] 2번 / 석유 시추 (2) | 2024.12.28 |
개인정보 수집 유효기간 (0) | 2024.12.24 |