Robot Bounded In Circle

유승선 ·2022년 2월 12일
0

LeetCode

목록 보기
21/121

어제 빛의경로싸이클 문제를 풀고 계속 이 문제가 머리속에 맴돌았다. 원래 전에 풀려고 했었던 문제중 하나인데 내가 잘 이해를 못했어서 일단 남겨두자 했던 문제중 하나인데 어제 비슷한 유형의 문제를 풀다보니 정말로 풀고싶었다.

instruction 이라는 스트링이 주어지면 캐릭터에 맞게 이동을 하면된다. 다만 G 문구가 아닌 L이나 R이 나오게되면 y축으로 이동을 하던지 x축으로 이동을 하는 시나리오에 맞게 움직이면 되고 만약에 로봇이 싸이클로 돌아오게 된다면 true를 리턴하고 이상한 방향으로 가게되면 false를 리턴하면 된다.

while문을 만들어가지고 계속 for 룹이 돌아가게 만들었다 사실 while 문이 없더라도 코드는 완성했겠지만 그냥 시나리오에 맞게 쓰고싶었다. G는 내가 지금 있는 방향 그대로 간다는 뜻이기에 만약 L이나 R이 나오면 어느 방향으로 이동을 해야할지에 함수 findDir 을 썼다.

여기서 내가 좀 헷갈렸던거는 문제에서 북쪽 남쪽 동쪽 서쪽에 대한 조건이 내가 생각했던것과 조금 달랐어서 그림을 그리고 코멘트를 달아서 이해를 했다. L일경우 이동을 어떻게 해야하는지 또 R일경우는 어떻게 이동을 해야하는지를 찾은다음에 Dir 벡터를 이용해가지고 x 와 y를 해당 지점에 맞게 움직였고 만약 x 와 y 가 원래 포인트인 0,0 에 올경우 true를 리턴했고 만약 dir 이 계속 북쪽이면 싸이클이 완성이 안되기때문에 false 를 리턴했다.

전에 풀었던 빛의경로싸이클 에서도 어느 방향에 빛이 들어오냐에 따라서 돌아가는 방향이 달랐듯이 이 문제도 유사하게 적었다. 만약 이 문제를 풀고 빛의경로싸이클을 풀었다면 좀더 나았을지도?

배운점:
1. 문제를 잘 읽어야한다
2. 특정 조건에서 방향이 바뀌는거를 잘 인지하고있자

profile
성장하는 사람

0개의 댓글