[프로그래머스] 빛의 경로 사이클
사용 언어: Python3
문제
풀이
다른 풀이
def solution(grid):
answer = []
r, c = len(grid), len(grid[0])
board = [[[] for _ in range(c)] for _ in range(r)]
directions = {'U':[1,0], 'R':[0,1], 'D':[-1,0], 'L':[0,-1]}
for x in range(r):
for y in range(c):
for d in 'ULDR':
move = 0
while True:
if d in board[x][y]:
break
board[x][y].append(d)
move += 1
x = (x + directions[d][0]) % r
y = (y + directions[d][1]) % c
if grid[x][y] == 'L':
idx = 'ULDR'.index(d)
d = 'ULDR'[0] if idx == 3 else 'ULDR'[idx+1]
elif grid[x][y] == 'R':
idx = 'URDL'.index(d)
d = 'URDL'[0] if idx == 3 else 'URDL'[idx+1]
if move > 0 :
answer.append(move)
return sorted(answer)
- 테스트 케이스: 통과
- 제출 결과: 통과
- 아직 이해하기 어렵다..
💛 개인 공부 기록용 블로그입니다. 👻