안녕하세요, 여러분~~ㅎ.ㅎ
사실 그냥 for문과 if문만 있으면 충분히 풀 수 있는 문제입니다!
(다들 아시겠지만 모든 코딩테스트 문제는 배열과 for문, if문만 있으면 다 풀 수 있다고 했잖아유?)
쉽고 빠르고 효율적으로 풀려면 %와 이차원 배열이 필요하겠지만
꼭 그렇게 쓰지 않으셔도 된다는 거에요!
혹시 %와 이차원 배열로 빠르게 풀어보고 싶은 분들을 위한 힌트 드려 볼텡께, 참고해서 봐보죠!
1. 로봇의 각도는 위, 오른쪽, 아래, 왼쪽을 바라 봅니다.
제가 웬만하면 다 숫자로 바꿔서 생각해보자 했죠?
우리는 개발자들이니ㅋㅋ 0부터 시작한다고 보고 + 시계 방향으로 90도씩 회전한다고 생각하면!
위 = 0, 오른쪽 = 1, 아래 = ... 맞죠?
0 % 4 = 0
1 % 4 = 1
2 % 4 = 2
3 % 4 = 3
4 % 4 = 0
5 % 4 = 1
...
그럼 "오른쪽으로 90도 회전하겠다!"
이 문장을 식으로 어떻게 표현하실 건가요~?
예를 들어, var direction = 0; (위) 로 시작한다면
오른쪽으로 90도 회전이면? direction = _______________;
왼쪽으로 90도 회전이면? direction = _________________;
2. 로켓의 방향에 따라서, G(o)가 나오면 x 값이 변할지, y 값이 변할지 다르죠?
위를 바라 볼 때(= direction이 0일 때) G가 나오면, y + 1
오른쪽을 바라 볼 때(= direction이 1일 때) G가 나오면, x + 1
아래쪽을 바라 볼 때(= direction이 2일 때) G가 나오면, y - 1
왼쪽을 바라 볼 때(= direction이 3일 때) G가 나오면, x - 1
3. 심지어 로켓의 방향에 따라 B(ack)이 나오면 반대로 움직이네요?
위를 바라 볼 때 B가 나오면, y - 1
오른쪽을 바라 볼 때 B가 나오면, x - 1
아래쪽을 바라 볼 때 B가 나오면, y + 1
왼쪽을 바라 볼 때 B가 나오면, x + 1
그럼 여러분 화이팅🤞