PS
프로그래머스. 빛의 경로 사이클
tose33
2021. 12. 2. 14:50
https://programmers.co.kr/learn/courses/30/lessons/86052
코딩테스트 연습 - 빛의 경로 사이클
각 칸마다 S, L, 또는 R가 써져 있는 격자가 있습니다. 당신은 이 격자에서 빛을 쏘고자 합니다. 이 격자의 각 칸에는 다음과 같은 특이한 성질이 있습니다. 빛이 "S"가 써진 칸에 도달한 경우, 직진
programmers.co.kr
얼마전에 dfs로 비슷한 문제를 풀어서 dfs 쪽으로 생각했었는데 그냥 배열 문제였던것 같다.
알고리즘을 짜는데 핵심은 두가진데
첫번째는 어느 방향에서 왔을때 어떤 알파벳을 만나면 어떤 방향으로 빛이 나가는지,
두번째는 정점에서 어떤 방향으로 빛이 이동했는지 어떤 방식으로 기록하는지 이다.
첫번째는 위, 오른쪽, 아래, 왼쪽을 각각 0, 1, 2, 3 숫자로 생각해보면
오른쪽(1)에서 와서 R을 만나면 아래(2)로 간다
위(2)에서 와서 R을 만나면 왼쪽(3)으로 간다 ...
이런식으로 이전 방향에서 +1을 하면 된다는 것을 알수 있다.
모든 알파벳들이 이런식으로 법칙이 있다.
두번째는 방향이 4가지 이므로 3차원 배열을 만든다.
1,2차는 좌표, 3차는 뻗어나가는 방향을 기록한다.