최대 1 분 소요

사용 언어: 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)
  • 테스트 케이스: 통과
  • 제출 결과: 통과
    스크린샷 2023-06-21 오후 10 23 45
  • 아직 이해하기 어렵다..


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기